在java callablestatement中设置uniqueidentifier

时间:2012-05-07 08:08:34

标签: java sql-server stored-procedures uniqueidentifier callable-statement

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

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:从字符串转换为uniqueidentifier时转换失败。

我想如果有一个类似'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

1 个答案:

答案 0 :(得分:0)

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