it小bb 2015-11-03 07:29
浏览 616

求大神解惑,oracle使用触发器报错,

求大神解惑,oracle使用触发器,在插入的表中无数据时,报错(如下图),再执行就成功了,可是序列从2开始了,我想问下如何让它从1开始不报错
下面是触发器:
create or REPLACE trigger trigger_name
BEFORE insert on test
for each row
DECLARE
v_newVal NUMBER(12) := 0;
BEGIN
if(INSERTING AND :new.DEVICEBRAND_SK IS NULL) then
select sequence_p .nextval into v_newVal from DUAL;

 if v_newVal = 1 THEN
   SELECT NVL(max(devicebrand_sk),0) INTO v_newVal FROM test;
   v_newVal := v_newVal + 1;
   end IF ;
 :new.devicebrand_sk := v_newVal;

end if;
end;
下面是序列:
create sequence sequence_p minvalue 1 maxvalue 999999999999999999999999 start with 1 increment by 1 cache 20;

图片说明

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试