2017年10月29日日曜日

[PowerShell] PowerShellからOracleを利用する方法

概要

PowerShellからODP.NETを利用してOracleデータベースにアクセスする。

PowerShellからODP.NETの利用

PowerShellから指定したパスのOracle.DataAccess.dllを読み込み、New-ObjectコマンドレットでODP.NETのオブジェクトを作成し利用する。

[System.Reflection.Assembly]::LoadFile("ORACLE_BASE\ORACLE_HOME\odp.net\bin\4\Oracle.DataAccess.dll") | Out-Null;

[String]$ConnectionString = "Data Source=hogehoge;User ID=ora_user;Password=ora_pass";

try {
    [Oracle.DataAccess.Client.OracleConnection]$oraConn | Out-Null;
    [Oracle.DataAccess.Client.OracleCommand]$oraCmd | Out-Null;
    [Oracle.DataAccess.Client.OracleDataReader]$oraReader | Out-Null;

    $oraConn = New-Object Oracle.DataAccess.Client.OracleConnection($ConnectionString);
    [void]$oraConn.Open();

    $oraCmd = New-Object Oracle.DataAccess.Client.OracleCommand;

    $oraCmd.Connection = $oraConn;
    $oraCmd.CommandText = "select table_name from user_tables";

    $oraReader = $oraCmd.ExecuteReader();
    while($oraReader.Read()) {
        Write-Host $oraReader["table_name"];
    }
} catch {
    Write-Host "error:$($Error[0])";
} finally {
    [void]$oraReader.Close();
    [void]$oraCmd.Dispose();
    [void]$oraConn.Close();
}

参考

  • なし。