Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行db2 pl sql函数,从python返回游标_Python_Db2 - Fatal编程技术网

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

执行db2 pl sql函数,从python返回游标,python,db2,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

我有一个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\u 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调用此函数?

只有在PL/SQL上下文中才能调用带有OUT或INOUT参数的函数。Hi@mustaccio我在PL/SQL包中有一个函数,它返回一个ref cursor对象。我尝试按如下方式执行函数:从dual中选择函数_name();但仍然收到相同的错误消息。您能举个例子吗?同样,
sys\u refcursor
数据类型在SQL上下文中无效。目前还不清楚你想要达到什么,但是考虑使用表函数。包含该函数的包已编译,我可以在IBMDataStudio中看到该函数。我需要修改函数吗?您能给我一些从IBMDataStudio调用此函数的示例吗?