想了解oracle job的用法
在PLSQL中创建触发器的适合报错
大家看红色重点标注的地方
Compilation errors for TRIGGER YLB2012.TRI_TEST_ID
Error: PLS-00103: 出现符号 "?"在需要下列之一时:
begin function
pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
exists prior
Line: 5
Text: ??nextid?number;
求高手帮忙解释啊 小弟刚学oracle1个星期 求老鸟多多指教我网上找了个例子
3.实例 这里提供了一个简单的例子,主要是完成在每一个时间间隔内向一个表中插入一条记录 ? 1)创建测试表?
Java代码 ?
? ??
?SQL>???create???table???test(id?number,cur_time???date);?? ??
??表已创建。 ??
建sequence ??
-- Create sequence
create sequence TEST_SEQUENCE
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 10;
SQL> create table test(id number,cur_time date);
表已创建。
----建sequence
CREATE SEQUENCE test_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10 ;
--建触发器代码为:
Java代码
?
create or replace trigger tri_test_id
before insert on test --test 是表名
for each row
declare
nextid number;
begin
IF :new.id IS NULLor :new.id=0 THEN --id是列名
select test_sequence.nextval --SEQ_ID正是刚才创建的
into nextid
from sys.dual;
:new.id:=nextid;
end if;
end tri_test_id; ???
?? ? 2)创建一个自定义过程?
Java代码 ?
??
SQL>???create???or???replace???procedure???proc_test???as?? ??
?????2?????begin?? ??
?????3?????insert???into???test(cur_time)???values(sysdate);?? ??
?????4?????end;?? ??
?????5?????/ ??
???
SQL> create or replace procedure proc_test as
2 begin
3 insert into test(cur_time) values(sysdate);
4 end;
5 /
? 过程已创建。? ?? ? 3)创建JOB?
Java代码 ?
SQL>?declare?job1?number; ??
?????begin ??
????????dbms_job.submit(job1,'proc_test;',sysdate,'sysdate+1/1440');--每天1440分钟,即一分钟运行test过程一次 ??
????end;??