orcale sequence trigger创建自增长字段

本文讨论了在创建并使用SQL触发器时遇到的一个具体问题:触发器验证未通过,ORA-04098错误。文章详细介绍了如何通过检查、修改触发器代码来解决全角字符或空格导致的编译错误,并最终使得触发器能够正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--建表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了可以运行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值