【发布时间】:2021-08-15 02:12:53
【问题描述】:
当使用 sqlalchemy 执行时,是否可以看到嵌入在存储过程中的标准输出(或日志)T-SQL PRINT 消息?
--编辑--
出于这个原因,看起来 pyodbc 添加了一种从游标中检索消息的方法,并且它已被合并到 master 中。我仍然不知道如何让它冒泡到 sqlalchemy https://github.com/mkleehammer/pyodbc/pull/765#
--结束了--
我尝试将 echo=True 添加到引擎并设置日志级别以进行调试,但我什么也看不到
这就是我执行usp的方式
import sqlalchemy as sa
import logging
logging.basicConfig()
logger = logging.getLogger("sqlalchemy.engine")
logger.setLevel(logging.DEBUG)
engine = sa.create_engine(target_uri, echo=True)
statement = sa.sql.text(f"EXEC {usp_schema}.{usp_name}")
with engine.begin() as cnxn:
cnxn.execute(statement)
CREATE PROCEDURE dbo.usp_do_stuff
BEGIN
BEGIN TRAN
PRINT 'DELETE STAGE'
PRINT 'LOAD STAGE'
PRINT 'CLEAN STAGE'
PRINT 'TRANSPORT STAGE'
END TRAN
END;
【问题讨论】:
-
相关 GitHub 问题 here。有一个 PR 已合并到 master 分支,但尚未发布。
标签: sql-server sqlalchemy pyodbc