1

datetime 用の cx_Oracle arrayvar を作成したいと考えています。これを使用して callproc をフィードできます。したがって、私が期待するコードは次のようなものです。

dt1 = datetime.datetime.strptime('2012/07/30 10:42:09', '%Y/%m/%d %H:%M:%S')
dt2 = ...(another datetime value)...
av1 = cursor.arrayvar(cx_Oracle.DATETIME, [dt1, dt2])
av2 = ...(another arrayvar)...
cursor.callproc('my_db_procedure', (av1, av2))

ただし、このエラーが発生し続けます:

PLS-00306: wrong number or types of arguments in call to 'my_db_procedure'

誰かが私が間違っていたことを指摘できますか?

4

1 に答える 1

1

わかりました、ついに何が間違っていたのかわかりました。私の PL/SQL コードでは、入力パラメータの型を次のように定義しました。

TYPE id IS TABLE OF varchar2(16);

実際には次のようになります。

TYPE id IS TABLE OF varchar2(16) INDEX BY BINARY_INTEGER;

これが同様の問題を抱えている人に役立つことを願っています。

于 2012-11-13T17:33:26.490 に答える