SQLAlchemy v2.0.6中TEXT未定义及MS SQL查询报错求助
解决SQLAlchemy 2.0.6操作MS SQL Server的文本SQL报错问题
确认
text()函数的正确使用逻辑
SQLAlchemy 2.x版本中,原生SQL语句必须用**全小写的text()**包裹,它和用于定义字段类型的TEXT/Text是完全不同的东西。正确写法示例:from sqlalchemy import text # 用小写text()包裹你的SQL语句 sql_query = text("SELECT CONVERT(VARCHAR(50), GETDATE()) AS current_datetime") result = engine.execute(sql_query)排查代码中的大小写误用
报错name 'TEXT' not found大概率是你把包裹SQL的text()写成了大写TEXT()或首字母大写Text()。记住:text():专门用于包裹原生SQL语句的函数TEXT/Text:用于定义数据库表字段类型(比如Column(TEXT)),不能用来包裹SQL语句
验证导入与使用的一致性
确保导入语句和调用逻辑完全匹配:# 正确导入 from sqlalchemy import text # 正确调用 query = text("你的完整SQL语句")不要在代码中自定义同名变量(比如
text = "自定义字符串"),这会覆盖SQLAlchemy的导入对象,导致调用失败。用最小案例排查问题
写一段极简测试代码,排除其他逻辑干扰:from sqlalchemy import create_engine, text # 替换为你的MS SQL Server连接串 engine = create_engine("mssql+pyodbc://用户名:密码@服务器/数据库?driver=ODBC+Driver+17+for+SQL+Server") with engine.connect() as conn: res = conn.execute(text("SELECT 1 AS test_result")) print(res.fetchone())如果这段代码能正常运行,说明原问题出在你的业务代码逻辑或SQL语句格式上,而非SQLAlchemy的导入或基础调用。
内容的提问来源于stack exchange,提问作者jackie
相关产品推荐
相关产品推荐

