使用 python 获取预言机函数的返回值



我的oracle数据库中有一个PL/SQL函数,它返回一个自定义类型,这是一个数字表。在 sql 控制台中运行此函数工作正常。

在 python 脚本中获取结果的正确方法是什么?

对于内置类型,我可以做这样的事情:

return_value = cursor.var(cx_Oracle.STRING)
cursor.callfunc("myfunction", return_value, [list_of_params])

但是我不知道如何处理自定义类型。

如果函数返回的自定义类型是嵌套表或 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') )

最新更新