SSRS调用MySQL存储过程报错:NO_SCHEMA禁用但指定非空架构
解决SSRS调用MySQL存储过程的NO_SCHEMA错误
问题根源
错误提示明确指向ODBC驱动的NO_SCHEMA选项禁用了schema支持,但调用存储过程时指定了非空schema(数据库名),导致驱动报错。以下是具体解决步骤:
检查并修改ODBC数据源配置
- 打开对应位数的ODBC数据源管理器(SSRS是32位就开32位管理器,64位则开64位),找到你的MySQL数据源。
- 进入配置界面,切换到「Advanced」或「Details」标签页。
- 找到
NO_SCHEMA选项,取消勾选(该选项会禁用驱动对schema的解析,导致带schema的调用失败)。 - 保存配置后重新测试连接。
调整SSRS中存储过程的调用语法
如果之前调用存储过程时带了数据库名(schema)前缀,比如CALLmydb.currentmonth(),改成不带schema的写法:CALL currentmonth()或仅保留存储过程名的反引号:
CALL `currentmonth`()验证存储过程定义
确认存储过程创建时的定义没有强制绑定schema,确保在SSRS调用时无需指定数据库名即可正常执行。备选方案:更换ODBC驱动版本
若上述方法无效,尝试降级到MySQL ODBC 5.3版本。部分用户反馈ODBC 8.0版本的NO_SCHEMA逻辑更严格,旧版本对SSRS的兼容性更好。
验证
修改完成后,重新在SSRS中创建数据集,调用存储过程,确认错误消失且能正常获取数据。
内容的提问来源于stack exchange,提问作者Kazmi
相关产品推荐
相关产品推荐

