【问题标题】:Sending Table Type To Stored Procedure From Python从 Python 将表类型发送到存储过程
【发布时间】:2018-09-11 21:51:12
【问题描述】:

我将表类型发送到存储过程。以下是声明的类型。

CREATE TYPE two_attr_ot AS OBJECT (
ssn      NUMBER,
fname    VARCHAR2(100)
);

CREATE TYPE two_attr_tt IS TABLE OF two_attr_ot;

程序

PROCEDURE set_emp_details(
    IN_save_data IN two_attr_tt
)

我正在使用 cx_Oracle 从 python 调用此过程。 conn 是连接对象。

tab = conn.gettype('two_attr_tt')
obj = conn.gettype('TWO_ATTR_OT')
new_obj = obj.newobject()
new_obj.SSN = 1111
new_obj.FNAME = 'John'
tab.append(new_obj)
conn.cursor().callproc('procname', [tab])

这执行得非常好。但我想使用动态键动态地将属性设置为 new_obj 。类似 new_obj[key] = val.

我怎样才能做到这一点。

【问题讨论】:

  • 似乎 new_obj.__setattr__(key,value) 正在工作。任何其他建议。

标签: python plsql cx-oracle


【解决方案1】:

你可以试试 setattr(object, name, value)。

setattr(new_obj, 'SSN', 1111)
setattr(new_obj, 'FNAME', 'John')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多