You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

兼容SQL Server的Babelfish Aurora PostgreSQL存储过程调用报错

Babelfish Aurora PostgreSQL执行SQL Server存储过程异常

问题背景

在兼容SQL Server的Babelfish Aurora PostgreSQL数据库中执行存储过程调用时抛出异常,但该调用在常规SQL Server环境下可正常运行。

执行的存储过程命令

exec sp_sproc_columns @procedure_qualifier=DivDB, @procedure_owner=dbo, @procedure_name=spProcName, @ODBCVer=3, @fUsePattern=0

使用的JDBC依赖

使用的JDBC库版本:mssql-jdbc-12.2.0.jre8

报错信息

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: com.microsoft.sqlserver.jdbc.SQLServerException: column "divdb" does not exist
...

调试定位的原因

经调试发现,错误根源在于SQLServerCallableStatement::findColumn方法执行元数据查询时,拼接生成的SQL未对数据库名DivDB进行正确处理,导致Babelfish将其误识别为列名,从而触发报错。

疑问与当前配置

当前存在疑问:使用Babelfish时,需要使用PostgreSQL驱动还是SQL Server驱动?目前Spring Boot配置采用SQL Server驱动,具体配置如下:

spring.datasource.jdbc-url=jdbc:sqlserver://DB-URL;databaseName=DivDB;appName=XXXXX;allowMultiQueries=true;encrypt=true;trustServerCertificate=true;
spring.datasource.username=*****
spring.datasource.password=DivaDev*321
spring.datasource.sqlserver.schema=dbo

spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.queryTimeout=300
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1

内容的提问来源于stack exchange,提问作者Ashish Ratan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:19:51