2017-11-20 9 views
0

私はコードを持っている:(文字列戻りobj.aslistでcx_Oracle:未処理のデータ型250

def get_same_value(self): 
     cursor = self.con.cursor() 
     try: 
      obj_type = self.con.gettype('MY_PKG.MY_TYPE') 
      obj = obj_type.newobject() 
      cursor.callproc('MY_PKG.getSameValue', [obj]) 
      return obj.aslist() 
     finally: 
      cursor.close() 

を)私はエラーを取得する:

cx_Oracle.NotSupportedError: Object_ConvertToPython(): unhandled data type 250 

間違っている可能性がありますか?

+0

my_pkg.my_typeの定義を指定できますか? Oracle ClientとDatabaseのどのバージョンを使用していますか?どのバージョンのcx_Oracle?どのバージョンのPython? –

+0

@AnthonyTuininga Python - 3.5、cx_Oracle - 5.3。別のPC上で動作します。サーバー上で動作しません(( –

+0

でもcx_Oracle 6を試すことができますが、1つの場所で動作し、別の場所では動作しない場合は、Oracleクライアントライブラリとデータベースのバージョンが問題です)。 –

答えて

1

私はcx_oracleマスターではありませんが、getattrはpl SQLレベルオブジェクトでは動作しません。

oracleオブジェクトは、SQLレベルで作成された場合のみアクセスできます。 CREATE TYPE test_type AS OBJECT ( id number, ....) ;

+0

DBで作成された覚書 –

+0

PL/SQLレコードとコレクションは実際にはサポートされていますが、現時点では動作しません –

+0

cx_oracleはdbにアクセスするためにoracle ociを使用しています。また、oracle 11

関連する問題