oracle小知识点总结
1.开启了我的oracle学习之路,遇到了两个问题,一个是比较两个日期的大小问题,oracle提供比较日期可以用>或<直接比较日期的大小。第二个问题是计算两个日期之间的天数,不够整数算作一天,这样我们就需要用到oracle的函数了。
先学习了三个函数,ceil,round,floor:
ceil是是向上取整,我们可以用ceil(date1-date2);
round是四舍五入,floor是向下取整。
第二问题:trunc(sysdate)和sysdate的区别
trunc(sysdate)是的得到的值是‘2014-04-09 00:00:00’
sysdate得到的值是系统当前时间例如:'2014-04-09 13:00:23'等等是具体时间
2.在oracle写存储过程中,不能直接写DDL(数据定义语言),可以写DML(数据操作语言)
如何必须也DDL语言的话:那么用execute immediate'truncate table report.DMA_EFFEC_PLYCUS';
execute immediate 'DDL语句'
DDL包括:create,alter,drop,truncate,grant,deny,revoke
DML包括:select,update,delete
2,在更新数据库表的时候涉及到两张表,用1张表的数据更新另一张表的数据
update report.DMA_EFFEC_PLYCUS rp set (rp.c_app_tel,rp.C_INSRNT_TEL,rp.C_PLY_APP_NO)=(select tpb.c_app_tel,tpb.c_insrnt_tel,tpb.c_ply_app_no
from bhsys.t_ply_base tpb where rp.c_ply_no=tpb.c_ply_no)
where exists(select 1 from bhsys.t_ply_base tpb where tpb.c_ply_no =rp.c_ply_no);
必须在后边加上 where exists 保证有数据对应上,否则会更新空值

浙公网安备 33010602011771号