我的oracle数据库中有一个PL / SQL函数,该函数返回一个自定义类型,即数字表。在sql控制台中运行此功能可以正常工作。
在python脚本中获取结果的正确方法是什么?
对于内置类型,我可以执行以下操作:
return_value = cursor.var(cx_Oracle.STRING)
cursor.callfunc("myfunction", return_value, [list_of_params])
但是我不知道如何处理自定义类型。
答案 0 :(得分:1)
如果函数返回的自定义类型是嵌套表或varray,则最好使用TABLE
函数读取值。
假设您的函数定义类似于
create or replace function "myfunction"(p_in1 int, p_in2 varchar2)
return my_custom_type AS
..
..
您可以执行此操作,并像其他任何查询结果一样获取结果。您也不必传递类型名称。
cursor.execute("""select * from TABLE( "myfunction"(:p_in1,:p_in2))""", (1,'TEXT') )