2009年11月22日 星期日

report的0秀不出來

格式改成NNN,NNN,NNN,NN0.NN
找半天,這結果真令人傷心

2009年11月19日 星期四

如何由SQL SERVER連線到ORACLE執行PACKAGE
限制條件
1、 PROCEDURE需包在PACKAGE中才能執行
2、 必須以TABLE的型態回傳值,使用型態ReturnTbl

步驟一、連線ORACLE(SQL SERVER建立)
1、建立連線伺服器
sp_addlinkedserver @server='TEST80' ,@srvproduct='Oracle',@datasrc = 'TEST80.WORLD',@provider='MSDAORA',@provstr='MSDAORA'

2、到主控台根目錄-->連線伺服器-->TEST80
3、按右鍵選內容
4、選取「安全性」頁籤,勾選「使用下列安全性條件進行連線」,輸入測試帳號/密碼

步驟二、建立PACKAGE(ORACLE建立)
--BODY
CREATE OR REPLACE PACKAGE BODY CRM.WrapPack
AS
PROCEDURE WrapPackSP( ReturnVal OUT ReturnTbl)
IS
Begin

ReturnVal( 1 ) := 0;
End WrapPackSP;
End WrapPack;
/
--SPEC
CREATE OR REPLACE PACKAGE CRM.WrapPack AS
TYPE ReturnTbl IS TABLE OF NUMBER

INDEX BY BINARY_INTEGER;
PROCEDURE WrapPackSP
(
ReturnVal OUT ReturnTbl
);
END WrapPack;
/

步驟三、執行PACKAGE(SQL SERVER執行)
SELECT * FROM OPENQUERY( TEST80 ,'{Call CRM.WrapPack.WrapPackSP({resultset 1 , ReturnVal} )}')