Connect to remote PostgreSql database using Powershell Connect to remote PostgreSql database using Powershell postgresql postgresql

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

Screenshot ODBC Driver Setup

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.