是否有可能调用蟒蛇与IBM_DB或ibm_db_dbi一个存储过程,并通过数组变量作为参数?
arr1 = ['a','b','c']
arr2 = ['x','y','z']
test = curDB2.callproc('subsystem.PYTHON_ARRAY_TEST',(arr1,arr2))
这是我收到的错误:
DatabaseError: ibm_db_dbi::DatabaseError: Describe Param Failed: [IBM][CLI
Driver] CLI0150E Driver not capable. SQLSTATE=HYC00 SQLCODE=-99999
我使用的驱动程序版本是10.01.200.238
的IBM_DB,在当前版本(2.0.9)ibm_db_dbi模块不支持传递的Python阵列SQLPL存储过程。
不知道如果JayDeBeApi模块支持它的。
您需要任一序列阵列或通过单独的元件作为单独的参数。
需要注意的是普通的Python动态数组并不限制于特定类型的每个元素(虽然可以使用阵列模块来约束元件类型),但SQLPL阵列被约束为单一类型。
如果你精通了“C”语言编程,使得IBM对于IBM_DB源代码/ ibm_db_dbi可以在GitHub上,你可以扩展它支持通过类型数组从Python来SQLPL程序。