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 保证有数据对应上,否则会更新空值

posted @ 2014-06-11 14:34  李东旭  阅读(90)  评论(0)    收藏  举报