前一陣領導安排了一個任務:定時將集團資料庫某表的數據同步至我們公司伺服器的資料庫,感覺比寫增刪改查SQL有趣,特意記錄下來,希望能幫到有類似需求的小伙伴,如有錯誤也希望各位不吝指教 環境描述: 集團資料庫:Oracle 11g 部門資料庫:Oracle 11g 使用的軟體:PLSQL Develop ...
前一陣領導安排了一個任務:定時將集團資料庫某表的數據同步至我們公司伺服器的資料庫,感覺比寫增刪改查SQL有趣,特意記錄下來,希望能幫到有類似需求的小伙伴,如有錯誤也希望各位不吝指教
環境描述:
集團資料庫:Oracle 11g
部門資料庫:Oracle 11g
使用的軟體:PLSQL Developer 13
網路環境:兩個資料庫處於同一區域網
先講一下完成此任務需要用到哪些技術:
Database link:使用戶可以通過一個資料庫訪問到另外一個遠程資料庫
DBMS_Job:使ORACLE資料庫定期執行特定的任務
Procedure:用來完成特定的數據操作(比如修改、插入、刪除數據等,個人感覺類似於Java中Util類里的方法)
一:創建Database links
1.在PLSQL Developer對象欄找到Database links右鍵選擇新建
2.打開後的界面
①:連接的名稱,可以自定義,建議命名規範為:connect_資料庫名稱
②:要連接的資料庫的用戶名,密碼,以及地址,地址格式為IP:埠/資料庫名稱
③:保存
3.測試Database link是否創建成功
SQL格式: Select * From 目標資料庫的表名稱@Database link名稱
假設對方有一張表為:AD_User,我們創建的Database link名稱問connect_Server
則測試SQL如下: Select * From AD_User@connect_Server
二:創建Procedure
1.在對象欄找到Procedures右鍵選擇新建
2.打開界面如下
第一行Name,輸入要創建的Procedure的名稱
第二行Parameters參數,視情況而定,無特殊要求的話可以直接刪掉(游標定位到箭頭所示位置,按)
最後點擊確 定按鈕
3.點擊確定後的界面:
在begin下編寫需要執行的SQL即可,添加,刪除等對資料庫進行更改的SQL語句記得要加commit
如圖
4.編寫完成後點擊PLSQL任務欄的執行按鈕即可
三:創建DBMS_Job
1.在對象欄找到DBMS_Jobs右鍵選擇新建
2.打開後界面如下
① What值:填寫Procedure名稱,多個以逗號(,)分割 最後分號(;)結尾
② 下一個日期:第一次執行從什麼時間開始,立即開始為sysdate
③ 間隔: 每隔多長時間執行一次
每秒鐘執行: sysdate+1/(24*60*60)
每分鐘執行: sysdate+1/(24*60)
也可以設置每天,每周,每月等等,具體SQL可以百度,此處不做贅述
3.配置完成後界面
最後點擊應用即可
四:演示