PowerShell から Oracle DB に接続してみる
前回は PowerShell から ODBC データソースを利用して DB 接続してみたが、今度は Oracle DB の接続文字列を用意して直接 Oracle DB にアクセスしてみる。
# SQL 文作成 Function
function createSelectSQL() {
$SQL = New-Object System.Text.StringBuilder
# [void] を書く必要がある
[void]$SQL.append(" SELECT ")
[void]$SQL.append(" * ")
[void]$SQL.append(" FROM ")
[void]$SQL.append(" my_table ")
[void]$SQL.append(" WHERE ")
[void]$SQL.append(" id LIKE '11%' ")
$SQL # ToString しなくて OK
}
# アセンブリをロードする
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient")
# コネクションを作成する
# - Data Source : 接続文字列。各自の Oracle DB の情報に書き換える
# - Integrated Security : Windows のログイン情報を使用して Oracle DB に接続するかどうか
$oracleConnectionString = "Data Source=MY_DATA_SOURCE;User ID=MY_USER_ID;Password=MY_PASSWORD;Integrated Security=false;"
$oracleConnection = New-Object System.Data.OracleClient.OracleConnection($oracleConnectionString)
# インスタンスを初期化する
$oracleCommand = New-Object System.Data.OracleClient.OracleCommand
$oracleCommand.Connection = $oracleConnection
# DB 接続
$oracleConnection.open()
# SQL : SELECT
$oracleCommand.CommandText = createSelectSQL
$oracleReader = $oracleCommand.ExecuteReader()
while($oracleReader.Read()) {
$oracleReader["id"].ToString() + " … " + $oracleReader["user_name"].ToString()
}
$oracleReader.Dispose()
# DB 接続 : トランザクション実行中に Close() を呼ぶとロールバックされる
$oracleCommand.Dispose()
$oracleConnection.Close()
$oracleConnection.Dispose()
昔作ったスクリプトが出てきたのでポイ捨て。