【问题标题】:Using cx_Oracle callfunc to get oracle objects使用 cx_Oracle callfunc 获取 oracle 对象
【发布时间】:2012-02-22 07:19:33
【问题描述】:

我正在尝试使用 cx_Oracle 的 cursor.callfunc() 调用返回 oracle 对象的 oracle pl/sql 函数,但无法使其正常工作,并且在文档和网络上都找不到帮助。 我的代码:

connection = cx_Oracle.connect('myuser/mypass@myservice')
cursor = connection.cursor()
result = cursor.var(cx_Oracle.OBJECT)
cursor.callfunc('myfunction', result , [an_arg]) 

Traceback (most recent call last):
  File "...", line nn, in <module>
    result = cursor.var(cx_Oracle.OBJECT)
TypeError: expecting type name for object variables

有人使用 callfunc 成功获取了 oracle 对象吗?

非常感谢。

【问题讨论】:

    标签: python cx-oracle


    【解决方案1】:

    这对我有用:

    connection = cx_Oracle.connect('myuser/mypass@myservice')
    cursor = connection.cursor()
    result = cursor.callfunc('myfunction', cx_Oracle.OBJECT, [an_arg]) 
    

    您需要将 cx_Oracle.OBJECT 替换为正确的类型;如果不这样做,我会返回以下错误:

    NotSupportedError:Variable_TypeByValue():未处理的数据类型 cx_Oracle.OBJECTVAR

    这个网站有一些很好的例子:http://st-curriculum.oracle.com/obe/db/11g/r2/prod/appdev/opensrclang/python/python.htm#t9

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 2013-06-10
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      相关资源
      最近更新 更多