Oracle 自动递增触发器

Oracle 自动递增触发器,oracle,plsql,triggers,sequence,auto-increment,Oracle,Plsql,Triggers,Sequence,Auto Increment,我有一个车辆表,其主键Vehicle_No是Varchar2类型,因此我触发了自动增量,但它显示错误 create sequence seq start with 1000 increment by 1; create or replace trigger vehicles Before Insert On Vehicle For Each Row If (:New.Vehicle_No is NULL) Then Select seq.nextval INTO :New.Vehicl

我有一个车辆表,其主键Vehicle_No是Varchar2类型,因此我触发了自动增量,但它显示错误

create sequence seq start with 1000 increment by 1;

create   or replace trigger vehicles
Before  Insert On Vehicle
For  Each Row
If (:New.Vehicle_No is NULL)
Then
Select seq.nextval INTO :New.Vehicle_No from dual;
End if;
End;
语法中缺少部分(
begin
);应该是

CREATE OR REPLACE TRIGGER vehicles
   BEFORE INSERT
   ON Vehicle
   FOR EACH ROW
BEGIN
   IF :New.Vehicle_No IS NULL
   THEN
      SELECT seq.NEXTVAL INTO :New.Vehicle_No FROM DUAL;
   END IF;
END;
除此之外,似乎还可以。但是,如果您使用的是一个序列(它是一个
数字),为什么主键列
varchar2

“它显示错误”对我们没有多大帮助。我们甚至不知道这些是编译错误还是运行时错误(我们无法访问您的模式,因此无法生成或运行您的代码)。请在问题中包含错误堆栈。如果这些是编译错误,您可以使用
select*from user\u errors,其中type='TRIGGER'和name='VEHICLES'
列出它们。