在TSQL中,我使用傳遞查詢從Oracle數據庫中選擇所有數據。這是一個簡單的聲明,它工作正常。但是,我意識到我需要在傳遞查詢中添加一些TRIM。解析傳遞查詢中的值
所以,我從這個去:
Select *
這樣:
Select TRIM(col1), col2
現在,我不能引用在直通的列。看起來像Select *允許你在Oracle中通過他們的名字來引用列,但是一旦列被明確列出(如col2),我會得到一個無效的列名錯誤。
這裏是有問題的簡化代碼。它說SOURCE.col1
或SOURCE.col2
的任何引用都是無效的列名稱。 (這是確定的,如果我在直通做一個選擇*雖然)。
MERGE dbo.SqlServerTable AS TARGET
USING (
SELECT * FROM OPENQUERY(ORA_REP, '
SELECT
TRIM(col1),
col2
FROM OracleTable
'
)
) AS SOURCE
ON (TARGET.Foo = SOURCE.col1)
WHEN MATCHED THEN
UPDATE SET
TARGET.Bar = SOURCE.col2
WHEN NOT MATCHED THEN
INSERT (
Foo,
Bar
)
VALUES (
SOURCE.col1,
SOURCE.col2
)
;
添加別名修剪值? – HABO
在傳遞? – user7733611
如果支持的話,那就是做這件事的地方。 – HABO