Oracle 相关知识点

简介: 1、为Oracle表中的类型为DATE的TIME字段,向后加13天,SQL语句如下:update st_bridge_waterlevel set TIME=to_date(to_char...

1、为Oracle表中的类型为DATE的TIME字段,向后加13天,SQL语句如下:

update st_bridge_waterlevel set TIME=to_date(to_char(TIME+13,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');

2、液位超警戒触发器

create or replace trigger tr_syit_bz_yw
after insert on hfpsbz.t_pump_liquidlevel
for each row
declare
  bzname   varchar2(20); 
  bzyw    numeric(10,4);
  dqyw    numeric(10,4);
  dt      date;
  dt2    date;
begin
   select sysdate-2/24 into dt2 from dual;
   select WARNV into bzyw from SYIT_BZ_V where PSID=:new.PSID;
   select PUMPNAME into bzname from SYIT_BZ_V where PSID=:new.PSID;
   dqyw := :new.liquidlevel;
   if :new.liquidlevel> bzyw then
       select NVL(max(warntm),dt2) into dt from hfoa.t_Sms where siteid=:new.PSID and warncontent like '%警戒水位%';
       if(ROUND(TO_NUMBER(:new.monitortime - dt) * 24)>=1) then
           insert into hfoa.t_Sms(sysid,siteid,sitename,warncontent,warntm)
           values('A',:new.psid,bzname,'['||bzname||'] '||:new.poolpump||'达到'||to_char(dqyw)||'厘米,已超过警戒水位'||to_char(dqyw-bzyw)||'厘米。',:new.monitortime);
       end if;
   end if;
end;

3、为PIP_PUMP创建insert、update和delete触发器

create or replace trigger tr_SYIT_PIP_PUMP
after insert or update or delete on hfpsbz.PIP_PUMP
for each row
declare
    integrity_error exception;
    errno            integer;
    errmsg           char(200);
begin
   if inserting then
       insert into SYIT_BZ_V(PSID,PUMPNAME,PUMPTYPE,WARNV)
       values(:new.PSID,:new.PUMPNAME,:new.PUMPTYPE,100);
   elsif updating then 
       update SYIT_BZ_V set PSID = :new.PSID,PUMPNAME = :new.PUMPNAME,PUMPTYPE = :new.PUMPTYPE where BID = :OLD.BID;
   elsif deleting then 
       delete from SYIT_BZ_V where BID = :OLD.BID;
   end if;
   exception 
    when integrity_error then
       raise_application_error(errno, errmsg);
end;

4、T_SMS删除触发器

create or replace trigger  TR_SYIT_T_SMS_DELETE
after delete  on  T_SMS
for   each  row
declare
    --这里是关键的地方,在变量申明的地方,指定自定义事务处理。     
    pragma autonomous_transaction;   
begin
   insert into T_SMS_HISTORY select * from T_SMS where TID=:old.TID;
    commit; 
end;


相关文章
|
7天前
|
SQL 存储 Oracle
[Oracle]知识点
本文主要介绍了Oracle数据库的相关知识点,包括数据类型、视图的使用及注意事项,并提供了详细的示例和扩展阅读链接。内容涵盖char族数据类型、number(a, b)数据类型、视图的创建与管理等,适合初学者和进阶用户参考学习。
29 4
[Oracle]知识点
|
5月前
|
SQL 存储 Oracle
老程序员分享:Oracle易忘知识点记录
老程序员分享:Oracle易忘知识点记录
|
存储 SQL Oracle
oracle知识点总结
oracle数据可系统是美国oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器或B/S体系结构的数据库之一,oracle数据库时目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完善的数据库管理功能,是关系型数据库,比mysql更为庞大,在现行的关系型数据库中排名第一(oracle、mysql、SqlServer),时间是最为精确的。
95 0
|
SQL 存储 Oracle
不得不会的Oracle数据库知识点(二)
不得不会的Oracle数据库知识点(二)
|
SQL Oracle 关系型数据库
不得不会的Oracle数据库知识点(三)
不得不会的Oracle数据库知识点(三)
|
Oracle 关系型数据库 数据库
不得不会的Oracle数据库知识点(一)
不得不会的Oracle数据库知识点(一)
|
SQL 存储 Oracle
不得不会的Oracle数据库知识点(四)
不得不会的Oracle数据库知识点(四)
|
Oracle 关系型数据库 数据库
Oracle相关知识点关键词
oracle导出建表语句        oracle删除表语句 oracle 锁表语句 oracle语句创建表 oracle 表分析语句 oracle 备份表语句 oracle查看表的语句 ...
2171 0
|
SQL Oracle 关系型数据库
【体系结构】有关Oracle SCN知识点的整理--补充内容
【体系结构】有关Oracle SCN知识点的整理--补充内容   小麦苗自己整理的内容参考:【体系结构】有关Oracle SCN知识点的整理  http://blog.itpub.net/26736162/viewspace-2126407/ DBA入门之认识Oracle SCN(System Change Number) 1. SCN的定义 SCN(System Change Number),也就是通常所说的系统改变号,是数据库中非常重要的一个数据结构。
2346 0
|
Oracle 关系型数据库
【体系结构】有关Oracle SCN知识点的整理
                                                                                                                            ...
787 0