|
分類:[VBScript]
お世話になります。
Windows 2012 R2 + Oracle 12c にて開発しています。
VBSにてOracleのストアドを実行したいのですが、パラメータ箇所の記載が間違っているらしく
実行時に「ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます」のエラーが発生します。
以下にソースを記載します
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "DSN=XXXX; UID=XXXX; PWD=XXXX;"
If Err.Number <> 0 Then
Call Log("データベースへの接続に失敗しました。バッチ処理を中断します: " & Err.Description)
Else
Call Log("データベースへ接続しました")
End If
'ストアドの実行準備
Set OBJdbCommand = CreateObject("ADODB.Command")
SET OBJdbCommand.ActiveConnection = objADO
OBJdbCommand.CommandText = "ストアド名"
OBJdbCommand.CommandType =4
'戻り値
Set Param1 = OBJdbCommand.CreateParameter("VALUE1",3,4)
OBJdbCommand.Parameters.Append Param1
'OUT値
Set Param3 = OBJdbCommand.CreateParameter("OUTVAL1",129,2,200,"")
OBJdbCommand.Parameters.Append Param3
'IN値
Set Param2 = OBJdbCommand.CreateParameter("INVAL1",129,1,200,"12")
OBJdbCommand.Parameters.Append Param2
objRS= OBJdbCommand.Execute ←ここでエラー
●呼び出すストアドファンクション
FUNCTION 対象ファンクション名(
INVAL1 IN VARCHAR2,
OUTVAL1 OUT VARCHAR2
)RETURN NUMBER IS
begin
処理コード
Return 1
End
●試したこと
Set Param3 = OBJdbCommand.CreateParameter("OUTVAL1",129,2,200,"")
Set Param2 = OBJdbCommand.CreateParameter("INVAL1",129,1,200,"12")
これらのパラメータ指定を129(adChar)→200(adVarChar)に変更
サイズの「200」を大きな数字「9999999」
などを試してみましたが同様のエラーでした。
返り値の取得などは考えずひとまずストアドが動作すればいいのですが、対応策を
ご存じの方がいればよろしくお願いします。
|