こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PowerShellからODBC接続してSQL実行

PowerShellからORACLEにODBC接続してSQL実行しています。
抜粋となりますが、以下の処理をしていますが、データの取得で
エラーが発生し、どうしてもORACLEのDBから抽出できません。

[void][System.Reflection.Assembly]::LoadWithPartialName("System.Data")
$connectionString="DSN=xxxxx;uid=xxxxx;pwd=xxxxx;"
$conn = New-Object System.Data.Odbc.OdbcConnection($connectionString)
$odbcCommand = New-Object System.Data.Odbc.OdbcCommand
$odbcCommand.Connection = $conn

$sql = "select sysdba from dual"
$odbcCommand.CommandText = $sql

$dataAdapter = New-Object System.Data.Odbc.OdbcDataAdapter
$dataAdapter.SelectCommand = $odbcCommand

$dataSet = New-Object System.Data.DataSet
$nRecs = $dataAdapter.Fill($dataSet)

"1" 個の引数を指定して "Fill" を呼び出し中に例外が発生しました: "算術演算の結果オーバーフローが発生しました。"
発生場所 行:1 文字:27
+ $nRecs = $dataAdapter.Fill <<<< ($dataSet)
+ CategoryInfo : NotSpecified: (:) []、MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException


DataSetに格納でエラーとなったので、ExecuteReaderに変えて実行。
上記、処理に
$conn.Open()
を追加し、

$odbcReader = $odbcCommand.ExecuteReader()
"0" 個の引数を指定して "ExecuteReader" を呼び出し中に例外が発生しました: "算術演算の結果オーバーフローが発生しました。"
発生場所 行:1 文字:41
+ $odbcReader = $odbcCommand.ExecuteReader <<<< ()
+ CategoryInfo : NotSpecified: (:) []、MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException


と、DataSetを使おうが、ExecuteReaderを使おうが同じエラーが発生した。
何が原因で発生しているのでしょうか。
また、対処はどのようにしたらよいのでしょうか。
お願いします。


環境
・Windows7 64ビット
・64ビット oracle client 11gR2
・sqlnet.ora、tnsnames.ora を作成
・odbcデータソース作成
 TNSサービス名には、tnsnames.ora にあるサービス名を指定

投稿日時 - 2017-11-29 09:40:09

QNo.9402551

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

別の手法ですが、PowerShellでSQL Plusを利用するのはどうでしょうか?

http://www.oborodukiyo.info/ORACLE/11g/ORA-SqlPlusByPowerShell

また、次のようなソフトがあります。
設定には開発の知識が必要な部分もありますが、ODBCやOLEと似たところもあるのでできるかなと思って紹介します。

http://www.oborodukiyo.info/Soft/DB-Explorer/DB-Explorer

投稿日時 - 2017-11-30 19:18:57

お礼

ありがとうございます。
別の方法を教えて頂きありがとうございます。

ですが、できれば、ODBC接続でと考えています。

投稿日時 - 2017-12-04 11:21:54

あなたにオススメの質問