- 论坛徽章:
- 0
|
新学oracle存储过程,一直报错,求大神赐教!!!!!!!!!!!!!!
create or replace PROCEDURE DAY_USE(value_m in varchar2,table_name in varchar2)
AS
collect_id varchar2(50);
collect_time varchar2(50);
node_ip varchar2(50);
ip_port varchar2(50);
m number;
n number;
i number;
j number;
p number;
q number;
x number;
type WCF is table of varchar2;
title WCF :=WCF();
value_t WCF :=WCF();
t WCF :=WCF();
Y WCF :=WCF();
BEGIN
title.extend(20);
value_t.extend(20);
t.extend(44);
Y.extend(20);
m:=1;
while m<45 LOOP
begin
t(m):= INSTR(value_m,',',1,m);
m:=m+1;
end LOOP;
collect_id := SUBSTR(value_m,t(1)+1,t(2)-t(1)-1);
node_ip := SUBSTR(value_m,t(2)+1,t(3)-t(2)-1);
ip_port := SUBSTR(value_m,t(3)+1,t(4)-t(3)-1);
collect_time := SUBSTR(value_m,t(4)+1,t(5)-t(4)-1);
i:=1;
while i<21 LOOP
begin
title(i):= SUBSTR(value_m,t(i+4)+1,t(i+5)-t(i+4)-1);
i:=i+1;
end LOOP;
j:=1;
while i<21 LOOP
begin
value_t(j):= SUBSTR(value_m,t(j+24)+1,t(j+25)-t(j+24)-1);
j:=j+1;
end LOOP;
select count(*) into x from COLLECT_LIST where collectid=collect_id;
if x=0 then
begin
INSERT INTO collect_list VALUES(collectid,item1_name,item2_name,item3_name,item4_name,item5_name,item6_name,item7_name,item8_name,item9_name,item10_name,item11_name,item12_name,item13_name,item14_name,item15_name,item16_name,item17_name,item18_name,item19_name,item20_name);
end;
end if;
select item1_name into y(1) from COLLECT_LIST where collectid=collect_id;
select item2_name into y(2) from COLLECT_LIST where collectid=collect_id;
select item3_name into y(3) from COLLECT_LIST where collectid=collect_id;
select item4_name into y(4) from COLLECT_LIST where collectid=collect_id;
select item5_name into y(5) from COLLECT_LIST where collectid=collect_id;
select item6_name into y(6) from COLLECT_LIST where collectid=collect_id;
select item7_name into y(7) from COLLECT_LIST where collectid=collect_id;
select item8_name into y( from COLLECT_LIST where collectid=collect_id;
select item9_name into y(9) from COLLECT_LIST where collectid=collect_id;
select item10_name into y(10) from COLLECT_LIST where collectid=collect_id;
select item11_name into y(11) from COLLECT_LIST where collectid=collect_id;
select item12_name into y(12) from COLLECT_LIST where collectid=collect_id;
select item13_name into y(13) from COLLECT_LIST where collectid=collect_id;
select item14_name into y(14) from COLLECT_LIST where collectid=collect_id;
select item15_name into y(15) from COLLECT_LIST where collectid=collect_id;
select item16_name into y(16) from COLLECT_LIST where collectid=collect_id;
select item17_name into y(17) from COLLECT_LIST where collectid=collect_id;
select item18_name into y(1 from COLLECT_LIST where collectid=collect_id;
select item19_name into y(19) from COLLECT_LIST where collectid=collect_id;
select item20_name into y(20) from COLLECT_LIST where collectid=collect_id;
q:=1;
p:=1;
while q<21 LOOP
begin
while p<21 LOOP
begin
if y(q) = title_t(p) then
begin
value_t(q):= value_t(p);
end;
end if;
if y(q) <> title_t(p) then
begin
value_t(q):= '';
end;
end if;
p:=p+1;
end LOOP;
q:=q+1;
end LOOP;
INSERT INTO DAY_INFO VALUES(collectid,collecttime,item1_average,item2_average,item3_average,item4_average,item5_average,item6_average,item7_average,item8_average,item9_average,item10_average,item11_average,item12_average,item13_average,item14_average,item15_average,item16_average,item17_average,item18_average,item19_average,item20_average);
end DAY_USE;
编译报错 :Error(109,12): PLS-00103: 記号"end-of-file"が見つかりました。 次のうちの1つが入るとき: ( begin case declare end exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
求解决 |
|