Connect to remote PostgreSql database using Powershell
Consult: https://odbc.postgresql.org/
Download: https://www.postgresql.org/ftp/odbc/versions/msi/
Data sources (ODBC) on Windows: Start → Search → odbc → User DSN → Add/Configure
Example :
$MyServer = "<ip>"$MyPort = "5432"$MyDB = "<database>"$MyUid = "<user>"$MyPass = "<pass>"$DBConnectionString = "Driver={PostgreSQL UNICODE(x64)};Server=$MyServer;Port=$MyPort;Database=$MyDB;Uid=$MyUid;Pwd=$MyPass;"$DBConn = New-Object System.Data.Odbc.OdbcConnection;$DBConn.ConnectionString = $DBConnectionString;$DBConn.Open();$DBCmd = $DBConn.CreateCommand();$DBCmd.CommandText = "SELECT * FROM tb_module;";$DBCmd.ExecuteReader();$DBConn.Close();
You actually have a typo in your connection string after Driver declaration.There is a double colon instead of a semicolon :)
Wrong:
{PostgreSQL UNICODE} : Server
Correct:
{PostgreSQL UNICODE} ; Server
You can use psql which comes with postgresql if you happen to have postgresql installed on your client
$dburl="postgresql://exusername:expw@exhostname:5432/postgres"$data="select * from extable" | psql --csv $dburl | ConvertFrom-Csv
You must have psql in your path or reference it, its within e.g. C:\Program Files\PostgreSQL\12\bin. Should be able to type "psql" and see output within powershell.