0
我只使用sqlalchemy進行連接池(需要調用現有的procs)並且想返回一個REF CURSOR,它是一個輸出參數。sqlalchemy Oracle REF CURSOR
在sqlalchemy中似乎沒有光標來做到這一點。
任何建議非常感謝。
我只使用sqlalchemy進行連接池(需要調用現有的procs)並且想返回一個REF CURSOR,它是一個輸出參數。sqlalchemy Oracle REF CURSOR
在sqlalchemy中似乎沒有光標來做到這一點。
任何建議非常感謝。
直覺 - 您可能不得不向下潛入比SQLAlchemy更低的層次,可能是底層的cx_oracle類。
由格哈德·哈林另一個論壇上給出了一個答案:
import cx_Oracle
con = cx_Oracle.connect("me/[email protected]")
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特性的有限子集的語言)。