执行db2 pl sql函数从python返回游标

时间:2016-03-29 10:33:08

标签: python db2

我有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中调用此函数?

0 个答案:

没有答案