sqlalchemy Oracle REF CURSOR - PullRequest
       7

sqlalchemy Oracle REF CURSOR

0 голосов
/ 13 августа 2010

Я использую sqlalchemy только для пула соединений (необходимо вызвать существующие процессы) и хочу вернуть REF CURSOR, который является выходным параметром.

Кажется, в sqlalchemy нет курсора для этого.

Любой совет с благодарностью.

1 Ответ

0 голосов
/ 13 августа 2010

Чувство инстинкта - вам, возможно, придется опуститься ниже уровня SQLAlchemy, возможно, до базовых классов cx_oracle.

Из ответа, предоставленного Герхардом Херингом на другом форуме:

import cx_Oracle 

con = cx_Oracle.connect("me/secret@tns") 
cur = con.cursor() 
outcur = con.cursor() 
cur.execute(""" 
BEGIN 
   MyPkg.MyProc(:cur); 
END;""", cur=outcur) 

for row in out_cur: 
print row 

Я бы предположил, что, поскольку SQLAlchemy использует скрытый cx_oracle, должен быть какой-то способ использовать те же соединения в пуле.

Есть ли возможность обернуть вашу функцию, возвращающую REF CURSOR, в представлении на стороне Oracle??(При условии, что форма REF CURSOR не изменяется, и вы можете каким-то образом получить правильные параметры в вашей функции - возможно, вставив их в качестве переменных сеанса или во временную таблицу, это должно работать - я использовал этот подходдля извлечения данных из функции REF CURSOR на язык, который поддерживает только ограниченный набор функций Oracle).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...