为DATETIME创建cx_Oracle数组变量

时间:2012-10-19 14:47:40

标签: python datetime cx-oracle

我想为datetime创建一个cx_Oracle数组变量,然后我可以使用它来提供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'

有人可以指出我做错了吗?

1 个答案:

答案 0 :(得分:1)

好的,最后我发现了什么是错的。在我的PL / SQL代码中,我将输入参数类型定义为:

TYPE id IS TABLE OF varchar2(16);

实际应该是:

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

我希望这可以帮助有类似问题的人。