为什么我在Oracle中遇到文件的符号结尾?

时间:2016-10-11 14:24:08

标签: sql oracle

我试图在Oracle中创建一个自动递增id值的触发器。以下是我尝试使用的代码

create or replace 
trigger themes_on_insert
before insert on THEME
for each row
begin
select themes_sequence.nextval
into :new.ID
from dummy
end;
  

错误(5,4):PLS-00103:遇到符号&#34;文件结束&#34;当期望下列之一:(开始情况声明结束异常退出goto如果循环mod空pragma提高返回选择更新,而&lt;&lt;继续关闭当前删除获取锁定插入打开回滚保存点设置sql执行提交forall合并管道清除< / p>

2 个答案:

答案 0 :(得分:2)

语句必须以;结束,整个PL / SQL块必须以/

结束
create or replace trigger themes_on_insert
  before insert on THEME
  for each row
begin
  select themes_sequence.nextval
  into :new.ID
  from dummy; --<< missing ; here
end;
/ 

select实际上不是必需的,可以简化为:

create or replace trigger themes_on_insert
  before insert on THEME
  for each row
begin
  :new.ID := themes_sequence.nextval;
end;
/ 

有关为何需要/的详细信息,请参阅here

答案 1 :(得分:0)

从假人身上失踪?

create or replace 
trigger themes_on_insert
before insert on THEME
for each row
begin
select themes_sequence.nextval
into :new.ID
from dummy;
end;