我想为日期时间创建一个 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'
有人可以指出我做错了什么吗?
最佳答案
好吧,我终于发现问题所在了。在我的 PL/SQL 代码中,我将输入参数类型定义为:
TYPE id IS TABLE OF varchar2(16);
实际上应该是:
TYPE id IS TABLE OF varchar2(16) INDEX BY BINARY_INTEGER;
我希望这可以帮助有类似问题的人。
关于python - 为 DATETIME 创建 cx_Oracle arrayvar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976745/