请帮助我理解我做错了什么,因为如果我执行的过程给出了多行响应,但在python中执行的过程失败了,并且在游标调用函数时出现异常,那么这个值是相同的。在-----Oracle Function----------

FUNCTION get_details (id IN VARCHAR2, actNo IN VARCHAR2, code IN VARCHAR2)

RETURN SYS_REFCURSOR

----Oracle Function Logic----------

OPEN cur_msg_dtls FOR SELECT NAME,VALUE,CODE FROM TABLE

returns cur_msg_dtls

----Python Code--------

import cx_Oracle

if __name__ == '__main__':

con = cx_Oracle.connect('username/pass@host.com:1521/schema')

cur_var = con.cursor()

actNo = 'actNo';

code ='Code';

Id ='Id';

try:

cur_var.callfunc('SCHEMA.PKG.GET_DETAILS',cx_Oracle.CURSOR, (Id,actNo, actCd))

print ("hello")

print(cur_var)

print(type(cur_var))

for row in cur_var:

print(row)

except cx_Oracle.DatabaseError as e:

print (e)

finally:

cur_var.close()

con.close()

pass

----Error--------------

hello

>

Traceback (most recent call last):

File "C:\Users\TestDBPRoc.py", line 26, in

for row in cur_var:

cx_Oracle.InterfaceError: not a query

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐