3

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 を使用してオラクル オブジェクトを取得することに成功した人はいますか?

よろしくお願いします。

4

1 に答える 1

3

これは私のために働く:

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

于 2012-09-19T20:12:02.407 に答える