我有pl sql包,其中包含一个返回ref_cursor对象的函数。
以下是我的python代码,我试图调用该函数
temp=""
con = get_connection() //get connection will return connection object
sql = 'values function_name(?)'
stmt = ibm_db.prepare(con, sql)
ibm_db.bind_param(stmt, 1, temp, ibm_db.SQL_PARAM_OUTPUT)
ibm_db.execute(stmt)
执行此python代码时,我收到以下错误:
Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL20441N A "CURSOR" data type is not supported in the context where it is being used. SQLSTATE=428H2 SQLCODE=-20441
如何从python执行此函数并获取读取此游标变量?
编辑:
实际上我正在尝试将我的Oracle数据库迁移到DB2。 在Oracle中,我有一个包含函数的PL / SQL包,它返回一个sys_refcursor对象。
FUNCTION my_function(l_parameter IN NUMBER) RETURN SYS_REFCURSOR IS
l_sql1 VARCHAR2(4000):= Select query1;
l_sql2 VARCHAR2(4000):= Select query2;
r_refcursor SYS_REFCURSOR;
BEGIN
IF l_parameter = 1 THEN
OPEN r_refcursor for l_sql1;
ElSE
OPEN r_refcursor for l_sql2;
END IF;
RETURN r_refcursor;
END my_function;
我们需要修改功能吗?
如何从db2以及python中调用此函数?