oracle sequence trigger创建自增长字段
oracle sequence trigger创建自增长字段
Java代码
--建表TEST
create table TEST(
id number(9),
name varchar(30)
)
--建squence
create sequence TEST_SEQUENCE
minvalue 0
maxvalue 999999999999999999999999999
start with 4
increment by 1
nocache;
--建触发器
create or replace trigger I_TEST_ID
before insert on TEST for each row
begin
select TEST_SEQUENCE.nextval into:new.ID from dual;
end;
--测试
insert into TEST (NAME) values ('asd')
在这过程中遇到了一个问题
触发器验证未通过
ora-04098
使用语句查询
SELECT do.OBJECT_NAME, do.status
FROM dba_objects do
WHERE do.OBJECT_TYPE = 'TRIGGER'
发现那个触发器是invalid
因此去看触发器代码
编译后错误提示为pls-00103:出现符号""在需要下列之一时
原因可能是你语句里有了全角的字符或者空格
改好以后发现ok了可以运行了