----------Trigger不能编译-----请看第三段
-------1, 建表
drop table DTMP;
create table DTMP
(
D NUMBER(20) not null,
P NUMBER(1) not null
)-- 2 创建SEQUENCE
create sequence SQ_ZZZ_ID
minvalue 1
maxvalue 9999999999
start with 21
increment by 1
cache 20;-----3 -----创建trigger,实现自动用Oracle的Sequence 替换dtmp的 字段"D"的值.
CREATE OR REPLACE TRIGGER TRIG_DTMP
BEFORE INSERT ON DTMP
FOR EACH ROW
DECLARE
BEGIN
:new.D := :SQ_ZZZ_ID.Nextval;
END TRIG_DTMP;
-------1, 建表
drop table DTMP;
create table DTMP
(
D NUMBER(20) not null,
P NUMBER(1) not null
)-- 2 创建SEQUENCE
create sequence SQ_ZZZ_ID
minvalue 1
maxvalue 9999999999
start with 21
increment by 1
cache 20;-----3 -----创建trigger,实现自动用Oracle的Sequence 替换dtmp的 字段"D"的值.
CREATE OR REPLACE TRIGGER TRIG_DTMP
BEFORE INSERT ON DTMP
FOR EACH ROW
DECLARE
BEGIN
:new.D := :SQ_ZZZ_ID.Nextval;
END TRIG_DTMP;
CREATE OR REPLACE TRIGGER TRIG_DTMP
BEFORE INSERT ON DTMP
FOR EACH ROW
DECLARE
BEGIN
:new.D := :SQ_ZZZ_ID.Nextval;
END TRIG_DTMP;
红色部分修改成这样看看:
:new.D := SQ_ZZZ_ID.Nextval;
错误就是trigger 的前面是红叉子。
BEFORE INSERT ON DTMP
FOR EACH ROW
DECLARE
v_new_d varchar2(20);
BEGIN
select SQ_ZZZ_ID.Nextval into v_new_d from dual;
:new.D := v_new_d;
END TRIG_DTMP;
没有其他错误