Utiliser PostgreSQL avec PowerShell
- Installer le pilote psqlODBC à l'aide de l'application Stack Builder ou en téléchargeant un installeur sur le site PostGreSQL.
- Vérifier le nom du pilote installé en utilisant l'Administrateur de sources de données ODBC ("PostgreSQL Unicode(x64)" ou "PostgreSQL ODBC Driver(Unicode)" par exemple).
- Adapter le script Powershell suivant pour tester la connexion au serveur de base de données PostgreSQL. Le nom du pilote PostgreSQL doit correspondre à celui observé dans l'Administrateur de sources de données ODBC.
$chaineDeConnexion = "Driver={PostgreSQL Unicode(x64)};Server=127.0.0.1;Port=5432;Database=PortefeuilleValeurs;Uid=florent.mazzone;Pwd=;"
$postGreSqlConnexion = New-Object System.Data.Odbc.OdbcConnection
$postGreSqlConnexion.ConnectionString = $chaineDeConnexion;
$postGreSqlConnexion.Open();
Exemple: Afficher un résultat dans la console
$postGreSqlCommande = $postGreSqlConnexion.CreateCommand();
$postGreSqlCommande.CommandText = "SELECT version(); "
$postGreSqlCommande.ExecuteScalar();
Sauvegarder une table dans un fichier texte
$postGreSqlCommande.CommandText=" SELECT *,pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database; "
$postGreSqlReader = $postGreSqlCommande.ExecuteReader();
Liste des colonnes
$resultatRequete=""
for ($i=0;$i -lt $postGreSqlReader.FieldCount; $i++)
{
$resultatRequete += $postGReSqlReader.GetName($i)+ "`t"
}
$resultatRequete
$resultatRequete | Out-File -filepath ([Environment]::GetFolderPath("Desktop")+"\resultatRequete.txt")
while($postGreSqlReader.Read())
{
$resultatRequete=""
for ($i=0;$i -lt $postGreSqlReader.FieldCount; $i++)
{
$resultatRequete += $postGReSqlReader.GetValue($i).ToString() + "`t"
}
#1 Ligne de données
#$resultatRequete
$resultatRequete | Out-File -filepath ([Environment]::GetFolderPath("Desktop")+"\resultatRequete.txt") -append
}
$postGreSqlReader.Close();
$postGreSqlConnexion.Close();