有什么方法可以执行存储过程并找回类吗?
我尝试过:
session.query(MyClass).from_statement(...)
myclass定义为:
MyClass(Base):
id = Column(Integer)
name = Column(String)
...
我知道我应该放:
__tablename__ ‘sometable’
但是没有表,因为所有行都是存储过程调用的结果。你知道解决这个问题的方法吗?
答案 0 :(得分:0)
Michael Bayer REPO所有者
SQLAlchemy目前不支持除Oracle之外的任何后端上的OUT参数。为了现在使用OUT参数,您需要使用DBAPI函数callproc(),请参见http://initd.org/psycopg/docs/cursor.html#cursor.callproc。
您的函数应如下所示:
def execproc(procname, engine, queryParams=[]):
connection = engine.raw_connection()
cursor = connection.cursor()
try:
cursor.callproc(procname, queryParams)
rows = list(cursor.fetchall())
cursor.close()
connection.commit()
return rows
finally:
connection.close()