执行db2 pl sql函数,从python返回游标
我有一个pl sql包,其中包含一个返回ref_cursor对象的函数。执行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
下面是我的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调用此函数的示例吗?