使用python获取oracle函数的返回值

时间:2019-07-15 13:29:33

标签: python oracle

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

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

对于内置类型,我可以执行以下操作:

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

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

1 个答案:

答案 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') )