create or replace package a_package_name2
as
type numberArray is table of number index by binary_integer;
type varcharArray is table of varchar2 index by binary_integer;procedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharArray
);procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharAray
);end;
create or replace package body a_package_name2
asprocedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharAray
)
is
str_id number :=0;
str_value varchar2 :'';
begin
for i in 1..v_id.count
loop
begin
str_id=v_id(i);
str_value=v_value(i);
begin
insert into test(id,value) values(str_id,str_value);
end;
end;
end loop;
end procedure insert_procedure_name;procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharAray
)
is
str_id number :=0;
str_value varchar2 :'';
begin
for i in 1..v_id.count
loop
begin
str_id=v_id(i);
str_value=v_value(i);
begin
update test set value=str_value where id=str_id;
end;
end;
end loop;
end procedure insert_procedure_name;end a_package_name2;
as
type numberArray is table of number index by binary_integer;
type varcharArray is table of varchar2 index by binary_integer;procedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharArray
);procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharAray
);end;
create or replace package body a_package_name2
asprocedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharAray
)
is
str_id number :=0;
str_value varchar2 :'';
begin
for i in 1..v_id.count
loop
begin
str_id=v_id(i);
str_value=v_value(i);
begin
insert into test(id,value) values(str_id,str_value);
end;
end;
end loop;
end procedure insert_procedure_name;procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharAray
)
is
str_id number :=0;
str_value varchar2 :'';
begin
for i in 1..v_id.count
loop
begin
str_id=v_id(i);
str_value=v_value(i);
begin
update test set value=str_value where id=str_id;
end;
end;
end loop;
end procedure insert_procedure_name;end a_package_name2;
str_value varchar2 :'';
--改为
str_value varchar2 :='';
str_id=v_id(i);
str_value=v_value(i);
--改为
str_id:=v_id(i);
str_value:=v_value(i);
create table test
(
id number,
value varchar
)
create or replace package a_package_name2
as
type numberArray is table of number index by binary_integer;
type varcharArray is table of varchar2(20) index by binary_integer;procedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharArray
);procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharArray--你写成varcharAray了
); end;
/我这网速太慢了,打开了半天日,这个包可执行了,我看下包体
建议还是先学习一下语法..
帮你调试了一把,VARCHAR2类型不晓得你的长度要多少,全部定义成100:
create table test
(
id number,
value VARCHAR2(100)
)
/
create or replace package a_package_name2
as
type numberArray is table of number index by binary_integer;
type varcharArray is table of VARCHAR2(100) index by binary_integer;procedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharArray
);procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharArray
);end;
/create or replace package body a_package_name2
asprocedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharArray
)
is
str_id number :=0;
str_value VARCHAR2(100) :='';
begin
for i in 1..v_id.count
loop
begin
str_id:=v_id(i);
str_value:=v_value(i);
begin
insert into test(id,value) values(str_id,str_value);
end;
end;
end loop;
end insert_procedure_name;procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharArray
)
is
str_id number :=0;
str_value VARCHAR2(100) :='';
begin
for i in 1..v_id.count
loop
begin
str_id:=v_id(i);
str_value:=v_value(i);
begin
update test set value=str_value where id=str_id;
end;
end;
end loop;
end update_procedure_name;end a_package_name2;
create or replace package body a_package_name2
as
procedure insert_procedure_name
(
v_id in numberArray,
v_value in varcharArray
)
is
str_id number :=0;
str_value varchar2(20):='';
begin
for i in 1 .. v_id.count
loop
str_id:=v_id(i);
str_value:=v_value(i);
insert into test(id,value) values(str_id,str_value);
end loop;
end insert_procedure_name;procedure update_procedure_name
(
v_id in numberArray,
v_value in varcharArray
)
is
str_id number :=0;
str_value varchar2(20) :='';
begin
for i in 1 .. v_id.count
loop
str_id:=v_id(i);
str_value:=v_value(i);
update test set value=str_value where id=str_id;
end loop;
end update_procedure_name;
end a_package_name2;
/
--这个可以执行了,你的错误太多了,自已对照吧可以用show errors来查看哪里错了表这样建,指定大小create table test
(
id number,
value varchar2(20)
);