创建顺序执行的定时:beginsys.dbms_scheduler.create_job(job_name => 'platform',job_type => 'PLSQL_BLOCK',job_action => 'begin 第一个执行的存储过程; 第二个执行的存储过程; end;',start_date =>...
创建顺序执行的定时:
begin
sys.dbms_scheduler.create_job(job_name => 'platform',
job_type => 'PLSQL_BLOCK',
job_action => 'begin 第一个执行的存储过程; 第二个执行的存储过程; end;',
start_date => to_date('27-1-2016 22:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=1',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false,
comments => '');
end;
eg:
begin
sys.dbms_scheduler.create_job(job_name => 'platform',
job_type => 'PLSQL_BLOCK',
job_action => 'begin mm_vou_pkg.do_the_first_one; mm_vou_pkg.do_the_second; end;',
start_date => to_date('27-1-2016 22:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=1',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false,
comments => '');
end;
以下是我的表格结构: Table -Customer CustomerID Blacklisted Customer Name 101 Y ABC ...所以我的困惑是,我可以假设触发更新在cntrl到达我的INSERT INTO reason(步骤3)语句之前,’Customer’表总是会被执行.请建议.
以下是我的表格结构:
Table -Customer
CustomerID Blacklisted Customer Name
101 Y ABC
102 Y DEF
Table -Blacklist
CustomerID BlacklistID Customer Name
101 1011 ABC
102 1012 DEF
Table -Reason
BlacklistID ReasonID Reason Code
1012 02 Rcode2
主表“客户”是存储客户信息.如果有人在客户表中将黑名单更新为Y,则在“客户”表上更新后会触发记录在“黑名单”表中.
如果,我们认为客户被列入黑名单
>将Customer表中的列列为值’Y’和.
>黑名单和原因表中有客户记录
现在我的要求是将客户从后端列入黑名单.为此我正在使用以下查询编写存储过程:
>更新客户设置blacklisted =’Y’,其中customerid =’102′;
>从blacklist中选择BlacklistID到var_id中,其中customerid =’102′;
>插入原因(BlacklistID,ReasonID,ReasonCode)值(var_ id,111,’RCODE1′);
现在要在Reason表中插入条目(步骤3),我需要BlacklistID这是一个外键,一旦客户表上的触发器得到规定,我将得到BlacklistID的值.所以我的困惑是,我可以假设触发更新在cntrl到达我的INSERT INTO reason(步骤3)语句之前,’Customer’表总是会被执行.请建议.
如何往数据库里按顺序插入数据往下自增长呢? 触发器便是一个很好的处理方式。 那么什么是触发器呢? 所谓的触发器,简而言之,就是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,...
Oracle 触发器
在写业务需求作业时,遇到过这么一个问题:
如何往数据库里按顺序插入数据往下自增长呢?
触发器便是一个很好的处理方式。
那么什么是触发器呢?
所谓的触发器,简而言之,就是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。
下面是一个简单的创建触发器的SQL代码:
/*建立触发器或取代原有触发器*/ create or replace trigger trg_cloud /*trg_cloud为创建的触发器名字*/ before insert on student /*student为表名*/ for each row /*对表的每一行触发器执行一次*/ begin select autoid.nextval into:new.sno from dual; /*autoid为创建的一个顺序*/ end;
意思时在student表插入数据之前进行触发该触发器,并按创建的顺序autoid往下添加数据。其中new表示新加记录,后面sno为表主键编号,new.sno为一个变量。
该触发器属于行级触发器中的before触发器。
补充autoid顺序创建的SQL代码:
CREATE SEQUENCE AUTOID MINVALUE 1 MAXVALUE 10000 INCREMENT BY 1 START WITH 1 CACHE 20 ORDER NOCYCLE;
student表内容: