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
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
這是語法,你的for ... loop 前有另外一個select ... ;這是語法錯誤
0 起始 100 结束 应该为数字 你那查询 出来是行级别的数据