0
私はMMSHO
という名前のリンクサーバー接続を持っています。 Oracleサーバーには、OPENQUERY
によって店舗コードを送信し、次に条件をフィルタリングするパラメータ化された関数があります。 :私はOPENQUERY
とFROM
キーワードが、ノー成功の間の行を削除しようとしていOPENQUERYのパラメータを使用
Msg 156, Level 15, State 1, Line 20
Incorrect syntax near the keyword 'CASE'.Msg 102, Level 15, State 1, Line 20
Incorrect syntax near 'DEPARTMENT'.
:私はEXEC (@SQL)
で上記のクエリを実行すると
DECLARE
@OPENQUERY NVARCHAR (MAX),
@STOREID VARCHAR (2),
@ARTICLEID VARCHAR (10),
@SQL NVARCHAR (MAX)
SET @STOREID = 10;
SET @ARTICLEID = 245511;
SET @OPENQUERY = 'SELECT *
FROM OPENQUERY (MMSHO,
''SELECT MS000'
+ @STOREID
+ '[email protected]'
+ @STOREID
+ '77TRP(ART_NR, VAR, GEBI_NR) AS ARTICLE_NNBP
FROM MS000'
+ @STOREID
+ '[email protected]'
+ @STOREID
+ '77TRP
WHERE SUBSYS_ART_NR = '
+ @ARTICLEID
+ '''';
SET @SQL =
'SELECT STORE_NO,
SUBSYS_ART_NO,
ARTICLE_NO,
ARTICLE_DESC,
PUAR,
SUPPLIER_NO,
SORTEN_TEXT AS ARTICLE_VARIANT,
GEBI_NR,
BLOCK_CD,
PACKAGE_CONTENT AS CONTENT,
PACKAGE_TYPE AS CONTENT_TYPE,
VAT AS ARTICLE_VAT,'
+ CHAR (13)
+ '('
+ @OPENQUERY
+ ') AS ARTICLE_NNBP,
ARTICLE_NNSP,
STOCK_QTY AS ARTICLE_STOCK,
CASE WHEN DEPT_NO IS NULL THEN 0 ELSE DEPT_NO END DEPARTMENT
FROM ARTICLE
WHERE STORE_NO = 10 AND SUBSYS_ART_NO = 245511'
PRINT (@SQL)
は、SQL Serverはエラーをスローします。私は間違って何をしていますか?手伝っていただけませんか?
PRINTED QUERYマルチェロ・miorelli @
SELECT STORE_NO,
SUBSYS_ART_NO,
ARTICLE_NO,
ARTICLE_DESC,
PUAR,
SUPPLIER_NO,
SORTEN_TEXT AS ARTICLE_VARIANT,
GEBI_NR,
BLOCK_CD,
PACKAGE_CONTENT AS CONTENT,
PACKAGE_TYPE AS CONTENT_TYPE,
VAT AS ARTICLE_VAT,
(SELECT *
FROM OPENQUERY (
MMSHO,
'SELECT [email protected](ART_NR, VAR, GEBI_NR) AS ARTICLE_NNBP
FROM [email protected]
WHERE SUBSYS_ART_NR = 245511') AS ARTICLE_NNBP,
ARTICLE_NNSP,
STOCK_QTY AS ARTICLE_STOCK,
CASE WHEN DEPT_NO IS NULL THEN 0 ELSE DEPT_NO END DEPARTMENT
FROM ARTICLE
WHERE STORE_NO = 10 AND SUBSYS_ART_NO = 245511
を、私はあなたが何を意味するのか、理解していない – mohan111
親愛なるモハンクエリを実行した後に、単一引用符で来ているのはなぜ選択? –
2番目のクエリでなぜ 'SELECT MS0001077TRP.MW070K01'が単一引用符で表示されます – mohan111