SQL> DECLARE 
  2  ll_maxid NUMBER;
  3  ll_count NUMBER;
  4  begin
  5  for c in (select MSG_COUNTER,
  6                   AREA_ID,
  7                   STATION_NUMBER,
  8                   MSG_DATETIME,
  9                   MSG_STATUS,
 10                   ERROR_INFO,
 11                   ACTION_CODE,
 12                   BATCH_ID,
 13                   PRODUCTION_TIME,
 14                   COIL_QUANTITY,
 15     HEAT_ID,
 16                   PONO,
 17                   SG_STD,
 18                   SG_SIGN,
 19                   PROGRAM_NO,
 20                   MAT_DIAMETER
 21    from TT_L25_CPLL1_BATCH_RECORDS@ss_to_sakai where msg_status=1) 
 22  select max(msg_counter) into ll_count from TT_L25_CPLL1_BATCH_RECORDS;
 23  loop
 24    IF(c.msg_counter>msg_counter) then
 25      insert into TT_L25_CPLL1_BATCH_RECORDS(MSG_COUNTER, AREA_ID, STATION_NUMBER,MSG_DATETIME,MS
G_STATUS,ERROR_INFO, ACTION_CODE,BATCH_ID, PRODUCTION_TIME,COIL_QUANTITY,HEAT_ID,PONO,SG_STD,SG_SIGN
,PROGRAM_NO,MAT_DIAMETER) values(c.MSG_COUNTER,c.AREA_ID,c.STATION_NUMBER,c.MSG_DATETIME,c.MSG_STATU
S,c.ERROR_INFO,c.ACTION_CODE,c.BATCH_ID,c.PRODUCTION_TIME,c.COIL_QUANTITY,c.HEAT_ID,c.PONO,c.SG_STD,
c.SG_SIGN,c.PROGRAM_NO,c.MAT_DIAMETER);
 26      commit;
 27      for D in (select MSG_COUNTER,
 28                   BATCH_ID,
 29                   ROLLING_NO,
 30                   ANNEAL_BATCH_NO,
 31                   COIL_ID,
 32                   YARD_PLACE_NO,
 33                   BEGIN_WEIGHT
 34      from TT_L25_CPLL1_BATCH_COILS@ss_to_sakai where msg_counter=c.msg_counter) 
 35      select count(msg_counter) into ll_count from TT_L25_CPLL1_BATCH_COILS;
 36      IF(e=c.coil_quantity) then 
 37              loop
 38        insert into TT_L25_CPLL1_BATCH_COILS(MSG_COUNTER,BATCH_ID,ROLLING_NO,ANNEAL_BATCH_NO,COIL
_ID,YARD_PLACE_NO,BEGIN_WEIGHT) values(c.msg_counter,d.batch_id,d.rolling_no,d.anneal_batch_no,d.coi
l_id,d.yard_place_no,d.begin_weight);
 39        commit;
 40              end loop;
 41              update TT_L25_CPLL1_BATCH_RECORDS@ss_to_sakai set MSG_STATUS=2 where msg_counter=c.
msg_counter;
 42              commit;
 43       else
 44       update TT_L25_CPLL1_BATCH_RECORDS@ss_to_sakai set msg_status=-1 where msg_counter=c.msg_co
unter;
 45       commit;
 46      end if;
 47     end if;
 48  end loop;
 49  end;
 50  /
报错为:
ERROR at line 22:
ORA-06550: line 22, column 1:
PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
loop
The symbol "loop" was substituted for "SELECT" to continue.
ORA-06550: line 35, column 5:
PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
loop
The symbol "loop" was substituted for "SELECT" to continue.
ORA-06550: line 47, column 8:
PLS-00103: Encountered the symbol "IF" when expecting one of the following:
loop