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