我無法用openquery成功運行代碼到oracle服務器。從Openquery選擇Oracle,缺少引號?
請不要考慮字段名稱/數據類型,因爲我只能介紹整個過程的一部分。這很長。 我相信問題在於引號等...
程序編譯沒問題。 每次我執行該過程,將發生錯誤:
引用: 消息105,級別15,狀態1,行53 閉合的引號後的字符串「SELECT TO_NUMBER(XYZ_1)XYZ_1, XYZ_2,
鑄造( '' '' 0 '' '' 爲數字(5))作爲B1, 鑄造( '' '' 1753年1月1日 '' '' 如日期)NULL_DATE
我丟失 - 我應該把那些缺少的引號放在哪裏?
代碼:
代碼:[選擇所有] [顯示/隱藏] CREATE TABLE #tmpXYZ頭( [XYZ_1] [INT] PRIMARY KEY, [XYZ_2] VARCHAR, [XYZ_3] VARCHAR, - 多個字段
[XYZ_N] VARCHAR )
申報@sqlInv爲nvarchar(3000) 組@sqlInv =
'insert into #tmpXYZ Header (
[XYZ_1],
[XYZ_2],
[XYZ_3],
-- more fields
[XYZ_N]
)
select
* FROM OPENQUERY(XYZ_ORACLE,
''SELECT TO_NUMBER(XYZ_1) XYZ_1,
XYZ_2,
cast (''''0'''' as number(5)) as B1,
cast(''''1753-01-01'''' as date) NULL_DATE,
-- more fields
cast ('''' '''' as varchar(20)) as A19
from XYZ.V_HEADER
where
(DATE >= ''''TO_DATE(''''' + @startDate + ''''', ''''YYYYMMDD'''')'''' AND
DATE <= ''''TO_DATE(''''' + @endDate + ''''', ''''YYYYMMDD'''')'''' AND
QWE = ''''0'''' AND
ABC = ''''13'''') '')
'
exec sp_executesql @sqlInv
不,同樣的錯誤:/ – user1883232