SQL2000與Oracle的分布式操作

來源:互聯網
上載者:User

 最近做的項目都會與Oracle產生資料的級聯,在此標記:

資料庫:
     我方項目:SQL2000(獨立伺服器--Win2003)
     客戶:Oracle 9I(獨立伺服器--Win2003)
     
需求:
     當我方項目中特定資料發生變動時,包括新增,更新,刪除時.要同步客戶方的某資料庫中資料.
本來想用觸發器來做.考慮到維護問題所以放棄.改用分布式操作.
過程:
     首先要在我方伺服器上安裝Oracle用戶端(因為要用OLE DB來串連),安裝過程略過.測試Oracel沒有問題後,就可以直接在"企業管理器"中建立"連結的伺服器"了
"企業管理器"->選擇自己的SQL伺服器-->"安全性"-->"連結的伺服器".1
圖1:


 按右鍵"連結的伺服器"-->選擇"建立連結的伺服器"-->在彈出的表單的"連結的伺服器"中寫入一個名字"HIS"(以後在TSQL中要用地)"伺服器類型"下選擇"其它資料來源"
在"提供者名稱"的右面的下拉框中選中"Microsoft OLE DB Provider for Oracle" 2
圖2:

下面就是填寫"產品名稱",資料來源,連接字串.這些內容都要可以在下面檔案
"H:\oracle\ora92\network\ADMIN\tnsnames.ora"找到,其中"H:"是Oracle的安裝盤
用記事本開啟後內容如下:

# TNSNAMES.ORA Network Configuration File: H:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

74 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.0)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = recdb)
    )
  )

 

 

其中"74"便是"產品名稱","資料來源"所要填寫的內容,"連接字串":uid=Oracle使用者;pwd=Oracle密碼.全部內容3

然後選擇"安全性"頁,選擇下面的"用此安全上下文進行"輸入"遠程登入"(Oracle使用者名稱)和"遠程登入密碼"(Oracle使用者密碼),之後再開啟"伺服器選項"頁將下面"值"
列全部勾選上.4

點擊"確定"後,全部的配置就結束了.再看"企業管理器"的"連結的伺服器"下面就多了一個名稱是"HIS"的連結的伺服器.
下面用'T-SQL'來操作Oracle的表:

 

/*
OPENQUERY(HIS, 'SELECT * FROM his.R_DEPT')
其中的'HIS'便是連結的伺服器的名稱
*/
--查詢R_DEPT表的資料,並列出所以有欄位
SELECT * 
FROM OPENQUERY(HIS, 'SELECT * FROM HIS.R_DEPT')

--查詢R_DEPT表的資料,只列出'dept_code'欄位的內容
SELECT * 
FROM OPENQUERY(HIS, 'SELECT dept_code FROM HI.R_DEPT')

--查詢指定條件的記錄
SELECT * FROM OPENQUERY(HIS,'SELECT * FROM HIS.R_ADDRESS') A WHERE A.ADDR_CODE='3294'
 
--插入一條新記錄
INSERT INTO OPENQUERY(HIS,'select addr_code,address from his.r_address')
VALUES('3294','test')

--更新指定條件的記錄
UPDATE OPENQUERY(his,'SELECT ADDR_CODE,ADDRESS FROM HIS.R_ADDRESS') SET ADDRESS='TEST' WHERE ADDR_CODE='3294'

--刪除指定條件的記錄
DELETE FROM  OPENQUERY(HIS,'SELECT * FROM HIS.R_ADDRESS') WHERE ADDR_CODE='3294'

注:以上操作,需Oracle使用者有相關許可權.

強烈建議,在編輯文章時加下"即時自動儲存"功能,偶寫內容時IE崩潰兩次,重寫了兩次.鬱悶!!!
(完) 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.