2

我正在尝试执行如下存储过程:

CallableStatement cs = this.con.prepareCall("{call getDeliveryConfirmations(?)}");
cs.setString(1, "545A6F33-A22A-47A6-AF97-0D952F2D80D7");
Resultset rs = cs.executeQuery();

如您所见,我在可调用语句中将 Guid/UniqueIdentifier 设置为执行前的参数...但您也可以看出,我在 callableStatement 对象上使用了方法“setString”,结果我“我收到此错误:

com.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换为唯一标识符时转换失败。

我想如果有像'setGuid'这样的方法或用于callablestatement对象的方法,我不会遇到这个问题......有人知道解决方法等吗?

编辑:

存储过程“getDeliveryConfirmations”的代码

USE [VodacomXml2Sms]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
BEGIN
SET NOCOUNT ON;
select * from OutgoingDeliveryConfirmations
where smsGuid = @selectedGuid
END
4

1 回答 1

0

我担心您的 Guid 和 uniqueidentifier 的数据类型或大小不匹配。
检查是否适合您。

于 2012-05-07T08:24:33.833 回答