Przez psql, który jest dostarczany z postgresql
$dburl="postgresql://exusername:[email protected]:5432/postgres"
$data="select * from extable" | psql --csv $dburl | ConvertFrom-Csv
Musisz mieć psql na swojej ścieżce lub odwoływać się do niego, jego wewnątrz np. C:\Program Files\PostgreSQL\12\bin. Powinien być w stanie wpisać „psql” i zobaczyć wyniki w powershell.
Jako ostrzeżenie, spodziewaj się ciągów. Np. $data[0].age.GetType() będzie ciągiem, mimo że jest przechowywany w bazie danych jako liczba całkowita. Możesz od razu go rzucić, rzucić później lub mieć nadzieję, że powershell poprawnie wywnioskuje typ.
Jeśli chcesz dodać z powrotem informacje o typie, możesz zrobić np.:
$data = $data | %{[pscustomobject]@{name=$_.name;age=[int]$_.age}}