在使用Python ibm_db_dbi调用DB2存储过程与数组参数

问题描述 投票:0回答:1

是否有可能调用蟒蛇与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

python arrays stored-procedures db2
1个回答
1
投票

的IBM_DB,在当前版本(2.0.9)ibm_db_dbi模块不支持传递的Python阵列SQLPL存储过程。

不知道如果JayDeBeApi模块支持它的。

您需要任一序列阵列或通过单独的元件作为单独的参数。

需要注意的是普通的Python动态数组并不限制于特定类型的每个元素(虽然可以使用阵列模块来约束元件类型),但SQLPL阵列被约束为单一类型。

如果你精通了“C”语言编程,使得IBM对于IBM_DB源代码/ ibm_db_dbi可以在GitHub上,你可以扩展它支持通过类型数组从Python来SQLPL程序。

© www.soinside.com 2019 - 2024. All rights reserved.