oo4oからPLSQLパッケージへの配列パタメータの渡し方
皆さんこんにちは。
oo4oを使用し、自作のPL/SQLパッケージを呼び出したいのですが、パラメータの一つに配列が含まれ、そこにセットする部分でエラーとなり先に進めません。
エラーは、OIP-00005:変数は正しい日付型ではありません です。
環境は、Oracle11gR2 oo4o VB.net2008 Windwos7Pro です
コードは、
Const strRUNSQL As String = "begin :o_RET := TESTPL.RunSQL(:p_p1,:p_p2,:p_ColArray); end;"
(省略)
Dim prms As Object = OraDatabase.Parameters
removeAllParams(prms)
'固定項目
prms.Add("p_p1", "", ORAPARM_INPUT) : prms("p_p1").ServerType = ORATYPE_CHAR : prms("p_p1").Value = p1
prms.Add("p_p2", "", ORAPARM_INPUT) : prms("p_p2").ServerType = ORATYPE_CHAR : prms("p_p2").Value = p2
'配列
prms.AddTable("p_ColArray", ORAPARM_INPUT, ORATYPE_VARRAY, 100, , "tArray100")
For i As Integer = 0 To 99
Dim v As String = String.Format("{0}", Values(i))
prms("p_ColArray").Put_Value(v, i) --(1)
Next
'戻り値用
prms.Add("o_RET", 0, ORAPARM_OUTPUT)
prms("o_RET").ServerType = ORATYPE_NUMBER
'実行
Dim r As Boolean
Try
OraDatabase.ExecuteSql(strRUNSQL)
r = (prms("o_RET").Value <> 0)
Catch ex As Exception
r = False
End Try
removeAllParams(prms)
実行すると、(1)の部分の一件目の設定で、「OIP-00005:変数は正しい日付型ではありません」 といきなりエラー表示されます。(VBデバッグ実行時)
Put_Value(v, i)のvの値は単純に'0000000001'で特に日付型ではありません。日付型というのに意味はないようですが、、、
なぜこのタイミングでこのようなエラーとなるのかわかりません。.Put_Valueは正しいと思うのですが。
3つ目の配列パラメータをコメントアウトし、呼び出し先のPLSQLの配列パラメータもコメントアウトすると、正常に実行できます。
参考までに、呼び出し先ではPLSQLパッケージの内部関数を呼んでいます。
TESTPL(パッケージヘッダ)
TYPE tArray100 IS VARRAY(100) of VARCHAR2(100);
FUNCTION RunSQL(
PARA_p1 in char,
PARA_p2 in char,
PARA_ColArray in tArray100
) return number;
どなたかご教示いただけないでしょうか? よろしくお願い申し上げます。
なでしこ