如何使用cx_Oracle调用返回记录的oracle函数?

时间:2019-03-07 10:05:11

标签: python oracle function cx-oracle

cx_Oracle有办法做到这一点:

typeObj = connection.gettype("PKG_DEMO.UDT_DEMORECORD")
obj = typeObj.newobject()

但是在文档中说:

 This feature is new in cx_Oracle 5.3 and is only available in Oracle
 Database 12.1 and higher.

在我的情况下,oracle服务器版本为11g,我无法更改函数本身。 我认为由于服务器版本python会引发错误:

cx_Oracle.DatabaseError: ORA-04043: object PKG_DEMO.UDT_DEMORECORD does not exist

是否可以从oracle 11g获取记录?

1 个答案:

答案 0 :(得分:1)

不幸的是,不,至少不是直接!您可以使用PL / SQL将记录分成几部分,例如,如果您拥有export function shallowWithIntl(node, { context, ...additionalOptions } = {}) { return shallow( <MemoryRouter> nodeWithIntlProp(node), //THIS WHOLE LINE GOES WHITE { context: Object.assign({}, context, {intl}), ...additionalOptions, } </MemoryRouter> ); } 记录,则可以执行以下操作:

PKG_DEMO.UDT_DEMORECORD

您可以做到的比原始演示要复杂得多-但它确实有效!