oracle數據抽取步驟 數據庫
Database links: oracle
一、 在本地計算機上,新建一個鏈接遠程數據庫的鏈接,並記住這個鏈接的服務名(例如:jzfx_remote); ide
二、 返回遠程數據庫的GLOBAL_NAME: 測試
執行:SELECT * FROM GLOBAL_NAME; rem
記住此值; it
三、 查看本地Global_name參數是true仍是False date
執行:SQL> show parameter global_name; select
修改本地Global_name的參數: 權限
alter system set global_names = false;--慎重 密碼
四、 建立Database link:
create database link [remote_global_name]connect to remote_username identified by remote_password using 'jzfx_remote';
參數介紹:
remote_global_name:遠程數據庫global_name;
remote_username:鏈接遠程數據庫的賬號;
remote_password:鏈接遠程數據庫的密碼;
五、 若是不能建立,須要修改本地的global_name爲false:
alter system set global_names = false;
六、 測試鏈接是否成功:
select * from dual@[remote_global_name];
若是返回結果以下則表示鏈接成功了。
DUMMY
-----
X
2、 建立存儲過程:
七、 CREATEORREPLACEPROCEDUREUSER_INFO_TEMP_TEST
IS
BEGIN
--插入數據(此SQL語句爲示例)
INSERTINTOUSER_INFO_TEMP
SELECT *FROMUSER_INFO@ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM.TEMP
WhereUSER_INFO.USERID@ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM.TEMPNOTIN (SELECTUSERIDFROMUSER_INFO_TEMP);
END USER_INFO_TEMP_TEST;
3、 建立job:
八、 使用sys,給本地用戶賦予job的權限:
grantexecuteondbms_jobto[本地用戶的賬號:xjgzmk];
九、 SQL> variablejobnonumber;
SQL >begin
dbms_job.submit(job => :jobno,
what =>'DATA_T_INFO_CRMNLCSSLV_PRO;',
next_date =>sysdate,
interval =>'sysdate+1/1440*10'
);
commit;
end;
/
此寫法(sysdate+1/1440)表明,每分鐘執行一次job;
十、 運行job:
1: 命令方式:
SQL >begin
dbms_job.run(:jobno)
end;
/
2: 快捷方式:
在須要運行的job上,點擊右鍵,再點擊「run」便可;
十一、 job各時間段介紹:
1: 每分鐘執行
Interval=> TRUNC(sysdate,'mi') + 1/ (24*60)
或
Interval=> sysdate+1/1440
2: 天天定時執行
例如:天天的凌晨1點執行
Interval=> TRUNC(sysdate) + 1 +1/ (24)
3: 每週定時執行
例如:每週一凌晨1點執行
Interval=> TRUNC(next_day(sysdate,'星期一'))+1/24
4: 每個月定時執行
例如:每個月1日凌晨1點執行
Interval=>TRUNC(LAST_DAY(SYSDATE))+1+1/24
5: 每季度定時執行
例如每季度的第一天凌晨1點執行
Interval=> TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24
6: 每半年定時執行
例如:每一年7月1日和1月1日凌晨1點
Interval=> ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
7: 每一年定時執行
例如:每一年1月1日凌晨1點執行
Interval=>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24