Est-ce que quelqu'un connaît un moyen plus facile de travailler avec les types définis par l'utilisateur dans Oracle en utilisant cx_Oracle?cx_Oracle et les types définis par l'utilisateur
Par exemple, si j'ai ces deux types:
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
/
Et puis une procédure en paquet my_package
comme suit:
PROCEDURE my_procedure (param in my_type_tab);
Pour exécuter la procédure PL/SQL que je peux faire quelque chose comme ceci:
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;
Cependant, je me demandais comment je peux le faire en Python, simila r à ce code:
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)
Si le paramètre est une chaîne que je peux le faire comme ci-dessus, mais comme il est un type défini par l'utilisateur, je ne sais pas comment l'appeler sans avoir recours à pur code PL/SQL . Désolé, j'aurais dû dire que je cherchais des façons de faire plus de code Python au lieu de PL/SQL.