Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java callablestatement中设置uniqueidentifier_Java_Sql Server_Stored Procedures_Uniqueidentifier_Callable Statement - Fatal编程技术网

在java callablestatement中设置uniqueidentifier

在java callablestatement中设置uniqueidentifier,java,sql-server,stored-procedures,uniqueidentifier,callable-statement,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(); 如您所见,在执行之前,我正在callable语句中将Guid/UniqueIdentifier设置为参数。。。

我正在尝试执行一个存储过程,如下所示:

CallableStatement cs = this.con.prepareCall("{call getDeliveryConfirmations(?)}");
cs.setString(1, "545A6F33-A22A-47A6-AF97-0D952F2D80D7");
Resultset rs = cs.executeQuery();
如您所见,在执行之前,我正在callable语句中将Guid/UniqueIdentifier设置为参数。。。但您也可以看出,我在callableStatement对象上使用了“setString”方法,因此出现了以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换为uniqueidentifier时,转换失败

我可以想象,如果callablestatement对象有一个像“setGuid”之类的方法,我就不会有这个问题了。。。有人知道解决方法吗

编辑:

存储过程“getDeliveryConfirmations”的代码

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

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

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

您可以发布getDeliveryConfirmations的代码以及至少声明吗?好了。。。显然,@selectedGuid是我通过java代码中的存储过程发送的参数。您是否可以发布getDeliveryConfirmations的代码以及至少声明?好了。。。显然,@selectedGuid是我发送给java代码中存储的进程的参数。当您声明一个用于guid的变量时,会发生什么:declare atguidParameter varchar;而不是声明atguidParameter nvarchar36?这可能是错误的原因吗?@DeanGrobler-我不确定这一点,但请您使用cs.setNString检查您的调用。当您声明一个用于guid的变量时,会发生什么情况:声明atguidParameter varchar;而不是声明atguidParameter nvarchar36?这可能是错误的原因吗?@DeanGrobler-我不确定这一点,但请您用cs.setNString检查一下您的呼叫。。