我有一個需要將信息發送到Oracle存儲過程的SQL Server存儲過程。從SQL Server存儲過程執行Oracle存儲過程
我該如何設置?它應該是一個鏈接服務器?我如何編寫代碼來傳遞和執行存儲過程?
我有一個需要將信息發送到Oracle存儲過程的SQL Server存儲過程。從SQL Server存儲過程執行Oracle存儲過程
我該如何設置?它應該是一個鏈接服務器?我如何編寫代碼來傳遞和執行存儲過程?
原來我最後不得不使用微軟CLR和以處理服務器之間被推變量寫我自己的小C#應用程序。下面是我所做的:
這是語法,我可能會從一開始就嘗試:
SELECT * FROM OPENQUERY(<linked server name>, '{CALL <oracle sp>}')
我所看到的(我沒有嘗試這樣做我自己)是,你還可以使用OPENQUERY
調用一個Oracle函數然後可以調用存儲過程,也可以將存儲過程轉換爲函數。然後從SQL Server的連接將是這個樣子:
SELECT * FROM OPENQUERY(<linked server name>, 'SELECT <oracle function> FROM dual')
您還可以使用:
DECLARE @outputParameter int
EXEC ('BEGIN <procedureName>(?,?); END;', @inputParameter , @outputParameter OUTPUT) at <linkedServerName>
這使得帽圖靈輸出參數
Oracle服務器中的程序「TestingProcedure」。
SQL Server中的鏈接服務器「LinkedServer」。
呼叫TestingProcedure在SQL服務器例如:
EXECUTE ('begin TestingProcedure; end;') AT LinkedServer;
你說** ** SQL(結構化查詢語言),但你真的是**的SQL Server **(微軟關係型數據庫系統) - 右? Oracle也與SQL一起工作 - IBM DB2,Informix,Firebird,MySQL也是如此 - 你的名字是...... –
對,SQL Server(我假設你爲我編輯過):) – Miles
我認爲這就是你這意味着 - 是的,我相應地更新了你的帖子。 –