create or replace trigger production_trigger
  before insert on T.t1  
  for each row
declare
  record_id number(20);
  work_id number(20);
  -- local variables here
begin
  select T.hibernate_sequence.nextval into record_id from dual;
  :new.t1_ID:=record_id;
  select T.hibernate_sequence.nextval into work_id from dual;
  insert into T.wf_work values(work_id,'/defaultroot/WorkFlowProcAction.do?qq=1',sysdate(),record_id,'window.open("/detroot/work_flow/workflow_cancelReason.jsp?workStatus=1&workId=work_id&tableId=32174&processName=生产进度看板&recordId=record_id&processId=32226&remindValue=1&moduleId=1&remindField=SQTSMT$t3057_f3764S","","TOP=0,LEFT=0,scrol
lbars=no,resizable=no,width=480,height=250")');
  select T.hibernate_sequence.nextval into work_id from dual;
  insert into T.wf_work values(X,X,X,X,X,X);
end production_trigger;
触发器代码如图,请问各位高手,怎么样才能让红色部分在插入数据库后显示的是从序列取出的数值,而不是work_id和record_id这样的字符.

解决方案 »

  1.   


    create or replace trigger production_trigger
      before insert on T.t1  
      for each row
    declare
      record_id number(20);
      work_id number(20);
      -- local variables here
    begin
      select T.hibernate_sequence.nextval into record_id from dual;
      :new.t1_ID:=record_id;
      select T.hibernate_sequence.nextval into work_id from dual;
      insert into T.wf_work values(work_id,'/defaultroot/WorkFlowProcAction.do?qq=1',sysdate(),record_id,'window.open("/detroot/work_flow/workflow_cancelReason.jsp?workStatus=1&workId=work_id&tableId=32174&processName=生产进度看板&recordId=record_id&processId=32226&remindValue=1&moduleId=1&remindField=SQTSMT$t3057_f3764S","","TOP=0,LEFT=0,scrol
    lbars=no,resizable=no,width=480,height=250")');
      select T.hibernate_sequence.nextval into work_id from dual;
      insert into T.wf_work values(X,X,X,X,X,X);
    end production_trigger;
      

  2.   

    晕死  红色部分定义不对了..  
    直接贴吧create or replace trigger production_trigger
      before insert on T.t1  
      for each row
    declare
      record_id number(20);
      work_id number(20);
      -- local variables here
    begin
      select T.hibernate_sequence.nextval into record_id from dual;
      :new.t1_ID:=record_id;
      select T.hibernate_sequence.nextval into work_id from dual;
      insert into T.wf_work values(work_id,'/defaultroot/WorkFlowProcAction.do?qq=1',sysdate(),record_id,'window.open("/detroot/work_flow/workflow_cancelReason.jsp?workStatus=1&workId=work_id&tableId=32174&processName=生产进度看板&recordId=record_id&processId=32226&remindValue=1&moduleId=1&remindField=SQTSMT$t3057_f3764S","","TOP=0,LEFT=0,scrol
    lbars=no,resizable=no,width=480,height=250")');
      select T.hibernate_sequence.nextval into work_id from dual;
      insert into T.wf_work values(X,X,X,X,X,X);
    end production_trigger;
      

  3.   

    可恶的CSDN  不能修改帖子......
      

  4.   

    红色部分是什么,这么长一串字符。
    你想插序列,直接写values(work_id,T.hibernate_sequence.nextval, ...
      

  5.   

    insert into T.wf_work values(work_id,'/defaultroot/WorkFlowProcAction.do?qq=1',sysdate(),record_id,'window.open("/detroot/work_flow/workflow_cancelReason.jsp?workStatus=1&workId=work_id&tableId=32174&processName=生产进度看板&recordId=record_id&processId=32226&remindValue=1&moduleId=1&remindField=SQTSMT$t3057_f3764S","","TOP=0,LEFT=0,scrol
    lbars=no,resizable=no,width=480,height=250")');
    ============================================================================================
    使用短串进行调试,如:
    insert into T.wf_work values(work_id,'test1',sysdate(),record_id,'test2');
      

  6.   

    用||连接如:rkId=work_id
    ‘rkId=’||work_id||‘’
    还有很多字符需要转义。具体上网查下吧
      

  7.   

    改成下面的形式:INSERT INTO T.WF_WORK
    VALUES
      (WORK_ID,
       '/defaultroot/WorkFlowProcAction.do?qq=1',
       SYSDATE(),
       RECORD_ID,
       'window.open("/detroot/work_flow/workflow_cancelReason.jsp?workStatus=1&workId=' ||
        WORK_ID || '&tableId=32174&processName=生产进度看板&recordId=' || RECORD_ID ||
        '&processId=32226&remindValue=1&moduleId=1&remindField=SQTSMT$t3057_f3764S","","TOP=0,LEFT=0,scrol 
    lbars=no,resizable=no,width=480,height=250")');
      

  8.   


    谢谢oracledbalgtu的指教,可以了.