有谁知道使用cx_Oracle在Oracle中使用用户定义类型的更简单方法吗?cx_Oracle和用户定义类型
举例来说,如果我有这两种类型:
CREATE type my_type as object(
component varchar2(30)
,key varchar2(100)
,value varchar2(4000))
/
CREATE type my_type_tab as table of my_type
/
然后一个程序包my_package
如下:
PROCEDURE my_procedure (param in my_type_tab);
要在PL/SQL执行的程序,我可以做些什么像这样:
declare
l_parms my_type_tab;
l_cnt pls_integer;
begin
l_parms := my_type_tab();
l_parms.extend;
l_cnt := l_parms.count;
l_parms(l_cnt) := my_type('foo','bar','hello');
l_parms.extend;
l_cnt := l_parms.count;
l_parms(l_cnt) := my_type('faz','baz','world');
my_package.my_procedure(l_parms);
end;
但是,我想知道如何在Python中做到这一点,simila R键此代码:
import cx_Oracle
orcl = cx_Oracle.connect('foo:[email protected]:5555/blah' + instance)
curs = orcl.cursor()
params = ???
curs.execute('begin my_package.my_procedure(:params)', params=params)
如果该参数是一个字符串,我可以这样做如上,但因为它是一个用户定义类型,我不知道如何调用它,而不诉诸纯PL/SQL代码。
编辑:对不起,我应该说我正在寻找方法来做更多的Python代码而不是PL/SQL。