2

次のようなストアド プロシージャを実行しようとしています。

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

ご覧のとおり、実行前に callable ステートメントに Guid/UniqueIdentifier をパラメータとして設定しています...しかし、callableStatement オブジェクトでメソッド 'setString' を使用していることもわかります。 m このエラーが発生します:

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 に答える