#python #oracle #cx-oracle
#python #Oracle #cx-oracle
Вопрос:
Допустим, у нас есть процедура Oracle:
procedure proc(i_value in number, o_value out varchar2) is
begin
null;
end proc;
Выходные значения, которые передаются callproc()
функции, должны быть инициированы одним из типов Oracle ( cx_Oracle.NUMBER
и cx_Oracle.STRING
т.д.) .
В нашем случае переменная, скажем, с именем out_value
, будет получена o_value
из процедуры и перед передачей должна быть определена следующим образом:
out_value = cur.var(cx_Oracle.STRING)
Это нормально, если мы знаем сигнатуру процедуры. Но что, если нет?
Есть ли способ получить типы выходных значений процедуры перед ее вызовом?
Ответ №1:
Вам нужно будет запросить представления «словаря данных», такие как USER_PROCEDURES и USER_ARGUMENTS. В cx_Oracle нет встроенного API ‘describe PL / SQL’.