在SQL Server中建立好與Oracle連接後,可透過下列方式查詢Oracle DB Server的資料
SELECT * FROM
OpenQuery([linkedServerName],'SELECT *
FROM dual')
ex: SELECT * FROM OpenQuery(PROD,'SELECT * FROM dual')
但如果你要傳的SQL帶有字串時,如下語法
SELECT * FROM dual WHERE EmplID='12258'
則需要透過「轉義字符(')」來控制,因此SQL修改成如下的方式傳值
SELECT * FROM
OpenQuery(PROD,'SELECT * FROM dual WHERE EmplID=''12258''')
如果今天你要在傳的SQL中再加上參數了話,就會變得複雜了,請參考下列SQL來處理
DECLARE @SQL VARCHAR(1000)
DECLARE
@OrgID VARCHAR(10)
SELECT @OrgID = 'SPK1'
SET @SQL = 'SELECT * FROM dual WHERE OrgID ='+@OrgID
SET @SQL = 'SELECT * FROM OpenQuery(PROD, ''' + REPLACE(@SQL, '''', '''''') + ''')'
EXEC(@SQL)
透過REPLACE函數,將SQL字串中的轉義字符調整成所需的樣式
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。