【PostgreSQL】PowerShellからDBに接続する【PowerShell】
2024年2月12日PostgreSQL,PowerShell
PowerShellからPostgreSQLのDBに接続する
処理内容
- PowerShellからPostgreSQLに接続する
- スクリプトに記載したSQLを実行する
- 実行結果を外部ファイルに出力する
対象テーブル名
実行SQL
出力ファイル
- C:\temp フォルダにCSVファイルで出力する
補足
- Windows環境で実行するため以下の設定にする
- 文字コード:Shift JIS
- 改行コード:CRLF
- ODBCドライバがないとエラーになるので 公式サイト から入手してインストールしておく
コード
# --------------------------------------------------
# DB接続パラメータの設定
# --------------------------------------------------
$serverName = "localhost"
$portNo = "5432"
$dbName = "postgres"
$userName = "postgres"
$password = "postgres"
# --------------------------------------------------
# DB接続処理の設定
# --------------------------------------------------
$dbConString = "Driver={PostgreSQL UNICODE};Server=$serverName;Port=$portNo;Database=$dbName;Uid=$userName;Pwd=$password;"
$dbCon = New-Object System.Data.Odbc.OdbcConnection
$dbCon.ConnectionString = $dbConString;
$dbCon.Open()
# --------------------------------------------------
# SQLコマンドの作成
# --------------------------------------------------
$dbCmd = $dbCon.CreateCommand();
$dbCmd.CommandText = "select * from test_table"
# --------------------------------------------------
# SQL実行結果をデータセットに格納する
# --------------------------------------------------
$dataAdp = New-Object -TypeName System.Data.Odbc.OdbcDataAdapter($dbCmd)
$dataSet = New-Object -TypeName System.Data.DataSet
# 実行結果を破棄する
$dataAdp.Fill($dataSet) > $null
# --------------------------------------------------
# データセットを出力する
# --------------------------------------------------
$dataSet.Tables[0] | export-csv C:\temp\export_csvFile.csv -notypeinformation -Encoding Default
# --------------------------------------------------
# DBコネクションを閉じる
# --------------------------------------------------
$dbCon.Close()