oracle定时更新(JOBS)
rm.pro_hrm_emp_info_job过程
需要每天都更新,所以先创建个procedure,再创建个job就可以实现定时更新
create or replace procedure rm.pro_hrm_emp_info_job is
zm
begin
update rm.hrm_emp_info
0)));
commit;
end pro_hrm_emp_info_job;
相应的+job
declare
jobno number;
dbms_job.submit(jobno,'rm.pro_hrm_emp_info_job;',trunc(sysdate),'trunc(sysdate)+1');每天零点更新
end;
/
分解下job
dbms_job.submit(jobno, job号,由sys.jobseq生成
'rm.pro_hrm_emp_info_job;', 要执行的procedure
trunc(sysdate), 下次要执行的时间
查看
select * from sys.user_jobs;
其中创建的jobno(任务号)由sys.jobseq序列生成
主由packages中的sys.dbms_job执行
细节可以查看sys.dbms_job包内容. ;
可以用以下SQL试试,如果有一对多的情况在b.name=a.name后面加个 and rownum=1:
upddate table_a a set a.lname =(select '前缀字符串'||b.lname from table_b b
where b.id=a.id and b.name=a.name)
在安装oracle数据库的时候,一般就把数据库给创建了.当使用Database Configuration Assistant工具创建另外一个数据库的时候,一般数据库默认的数据路径放在oracle安装路径下面(例如:C:\oracle\oradata).为了提高数据库的性能,一般oracle的主目录和数据文件要分别放在不同的盘中.而且系统C盘很容易崩溃,且空间小,不小心数据将随系统的崩溃而消失,那样损失将是无法估量的.一般用Database Configuration Assistant工具创建数据库时并不提示你修改路径.而且这个修改的路径也不容易找到.
具体方法如下:假设这里安装的数据库名是XLJC.
将盘符c:变成你所要存放的盘符,比如d:,然后保存退出.
C:\oracle\oradata\XLJC
在d:盘下面建立同样的目录,例如d:\oracle\oradata.然后把整个XLJC文件夹复制到所建立的目录下即可.(C:\oracle\oradata\XLJC目录下存有有数据库的控制文件,创建表空间的时候,表空间文件就和这些控制文件在同一目录下).
然后就可以打开oracle数据库平台在你修改后的路径下创建表空间了.
通过Update语句将A表的某列值修改为B表中的指定列的值时,所用的sql语句在Oracle和SQL Server中是不一样的,
代码如下:
Oracle中的语句:
UPDATE A
SET A.COL1=(SELECT B.COL1 from B where A.KEY=B.KEY [and 其它限制(可选)] )
where 其它条件
SQL Server中更新语句:
update A
SET A.COL1=B.COL1
FROM A,B where A.KEY=B.KEY where 其它条件限制
若关联条件为多个,where后面用and 连接指定条件即可
oracle触发器将数据插入到另一个服务器的oracle数据库中要用dblink实现两台服务器的数据共享.
oracle db_link 和触发器实现不同数据库表的同步
create public database link dblink_test
using 'ass100';
---删除dblink
----drop public database link dblink_test;
----建立表
select * from a_test;
insert into a_test (id,name,pass) values (1,'zzn','shanshan')
insert into b_test (id,username,password) values('1','zxl','xiaolan')
----在目的数据库上,测试dblink,查询的是源数据库的表
----创建触发器
create or replace trigger a_b_test
after insert or update or delete
on a_test
for each row
if deleting then
delete from b_test where id=:old.id;
end if;
if inserting then
insert into b_test(id,username,password) //b_test表的字段
values(:new.id,:new.name,:new.pass); //a_test表的字段
if updating then
update b_test set username=:new.name,password=:new.pass where id=:old.id;
end a_b_test;
以上就是土嘎嘎小编为大家整理的oracle怎么更新内容相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!