2009-07-21 12 views
1

を使用してOUTパラメータを使用したMS SQLストアドプロシージャを呼び出す:私はこのエラーを受け取るトラブルこのMS-SQLストアドプロシージャを呼び出すときにGroovyの

networkAliasID = 'aschoewe_test' 
sql.call("{call AddUser(?, ${Sql.VARCHAR}) }", [networkAliasID]) { s -> 
    println "userID: ${s}" 
} 

:このGroovyのコードで

CREATE PROCEDURE [dbo].[AddUser] 

@networkID varchar(512), 
@id uniqueidentifier OUTPUT 
.... 

java.sql.SQLException: Incorrect syntax near '.'. 

これは 'Sql'が嫌いです。コードコードの一部です(私が見たすべての例がこれを好きですが)。コードを変更すると:

networkAliasID = 'aschoewe_test' 
String userID = null 
sql.call("{call AddUser(?, ?) }", [networkAliasID, userID]) { s -> 
    println "userID: ${s}" 
    println "userID: ${userID}" 
} 

コードは実行されますが、新しいユーザーIDを取得できません。コードの実行が終了すると、 's'と 'userID'の両方がnullになります。

体系的に間違っているのですか?これはMSSQLの問題ですか?これは戻り値の型がUNIQUEIDTIFIERの問題ですか?私はJTDSドライバを使用しており、JDBCの等価型はVARCHARであることをドキュメントで示しています。すべてのヘルプは高く評価され

アンドリュー

答えて

1

パラメータリストに行くべき出力パラメータの種類ではなく、クエリ文字列、そのような:

networkAliasID = 'aschoewe_test' 
sql.call("{call AddUser(?, ?) }", [networkAliasID, Sql.VARCHAR]) { s -> 
    println "userID: ${s}" 
} 
関連する問題