有誰知道使用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。