【问题标题】:Oracle - PLS-00103: Trigger - End of file errorOracle - PLS-00103:触发器 - 文件结束错误
【发布时间】:2013-01-07 16:15:38
【问题描述】:

我创建了上述触发器,但它给了我错误: PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:;符号“;”被替换为“文件结尾”以继续

触发码:

CREATE OR REPLACE TRIGGER
subView_insert_tr INSTEAD OF INSERT ON VSubscriber
DECLARE
 lendings           Lending_tab ;
 i                  INTEGER ;
 copy_book_var      Copy_list_T;
 copy_book_vartemp  REF Copy_list_T ;

BEGIN
  lendings := :NEW.Lending_List;
  INSERT INTO Subscriber (num_s, name) VALUES (:NEW.num_s, :NEW.name) ;
  FOR i IN 1..lendings.COUNT LOOP
   copy_book_vartemp := lendings(i).Copy_Book_REF;
   SELECT DEREF(copy_book_vartemp) INTO copy_book_var FROM DUAL ;

INSERT INTO LENDING (num_s, num_c) VALUES (
     :NEW.num_s, copy_book_var.num_c,
     lendings(i).d_L) ;
 END LOOP ;

END ;
/

【问题讨论】:

    标签: oracle plsql


    【解决方案1】:

    我认为问题在于这个插入

    INSERT INTO LENDING (num_s, num_c) VALUES (
         :NEW.num_s, copy_book_var.num_c,lendings(i).d_L) ;
    

    修改一下,试试这个

    CREATE OR REPLACE TRIGGER
    subView_insert_tr INSTEAD OF INSERT ON VSubscriber
    DECLARE
     lendings           Lending_tab ;
     i                  INTEGER ;
     copy_book_var      Copy_list_T;
     copy_book_vartemp  REF Copy_list_T ;
    
    BEGIN
      lendings := :NEW.Lending_List;
      INSERT INTO Subscriber (num_s, name) VALUES (:NEW.num_s, :NEW.name) ;
      FOR i IN 1..lendings.COUNT LOOP
       copy_book_vartemp := lendings(i).Copy_Book_REF;
       SELECT DEREF(copy_book_vartemp) INTO copy_book_var FROM DUAL ;
    
    INSERT INTO LENDING (num_s, num_c) VALUES (
         :NEW.num_s, copy_book_var.num_c);
      --   lendings(i).d_L) ;
     END LOOP ;
    
    END ;
    /
    

    【讨论】:

    • 感谢 Dileep,我将代码行更改为: INSERT INTO LENDING (num_s, num_c, d_L) VALUES ( :NEW.num_s, copy_book_var.num_c, loans(i).d_L) ;但问题仍然存在。任何帮助将不胜感激。
    • @EffiongCharles 您能否在 Toad 中格式化代码,以便了解语法错误。这将帮助我们执行触发器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2020-06-26
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多