1

SQL Server データベースからリンク サーバーを使用して MySQL データベースにクエリを実行しようとしています。パラメータ化された動的 SQL クエリを作成しました。実行すると、エラーは発生しませんが、0 行が返されます。

パラメータをハードコーディングすると、要求した行のデータが返されます。

パラメータ化されたクエリに関して、MySQL を処理するための秘訣はありますか?

この構文は 0 行を返します。

DECLARE @SQL NVARCHAR(MAX), 
        @Params VARCHAR(MAX)

SET @SQL = N'SELECT * FROM OPENQUERY(MYSQL, ''SELECT LoanNumber  
             FROM plms.vw__bid_dd_overlay 
             WHERE LoanNumber IN (@MyParams);'')'

SET @Params = '1000001289,1000001294,1000001296,1000001303,1000001304,1000001306,1000001308'; 

EXEC sp_executesql @SQL, N'@MyParams VARCHAR(MAX)', @Params

これは 7 を返します。

DECLARE @SQL NVARCHAR(MAX)

SET @SQL = N'SELECT * FROM OPENQUERY(MYSQL, ''SELECT LoanNumber  
                                              FROM plms.vw__bid_dd_overlay 
                                              WHERE LoanNumber IN  (1000001289,1000001294,1000001296,1000001303,1000001304,1000001306,1000001308);'')'

EXEC sp_executesql @SQL; 

どんな援助でも大歓迎です。

4

1 に答える 1

0

a ステートメントを準備してから実行する必要があります。

SET @Params = '1000001289,1000001294,1000001296,1000001303,1000001304,1000001306,1000001308'; 

SET @SQL = CONCAT('SELECT LoanNumber  
         FROM plms.vw__bid_dd_overlay 
         WHERE LoanNumber IN (' , @MyParams , ' );';

PREPARE statement FROM @SQL;

EXECUTE statement;

MySQL マニュアルへの参照

于 2013-07-08T18:31:45.220 に答える