cx_Oracle如何在PL/SQL对象类型上设置CLOB成员属性?

问题描述:

我有一个PL/SQL object,我想在Python中填充并传递到PL/SQL过程。cx_Oracle如何在PL/SQL对象类型上设置CLOB成员属性?

PL/SQL对象类型:

CREATE TYPE t_foo (
    name VARCHAR2(10), 
    data CLOB, 
); 

的Python:

obj_type = conn.gettype('t_foo') 
o = obj_type.newobject() 

o.NAME = 'test' 
# Raises NotSupportedError: Object_ConvertFromPython(): unhandled data type 112 
o.DATA = 'big string' 

blobvar = cur.var(cx_Oracle.CLOB) 
blobvar.setvalue(0, 'big string') 
# Raises NotSupportedError: Object_ConvertFromPython(): unhandled data type 112 
o.CONTENTS = blobvar 

有什么办法来设置一个对象的CLOB?

对此的支持已添加到cx_Oracle的源代码中,可以在此处找到:https://github.com/oracle/python-cx_Oracle。一个版本将在下个月左右发布,但同时你可以从克隆版本库中构建自己的版本。