create or replace procedure proc_selectAnyone()
as
type type_array is varray(11) of varchar2(2); --定义长度为11的数组
init_array type_array :=type_array('01','02','03','04','05','06','07','08','09','10','11');
--初始化数组的11个字符
begin
for i in 1..init_array.count loop
dbms_output.put_line(init_array(i));
end loop;
end proc_selectAnyone;
执行后,出错!
Warning: Procedure created with compilation errors
怎么回事?是oracle存储过程中不让定义数组?但是我在代码块中执行,没问题的!
------解决方案--------------------
把句柄的()去掉。。。代码应该没问题。
------解决方案--------------------
CREATE OR REPLACE PROCEDURE TEST1 AS
TYPE TYPE_ARRAY IS VARRAY(11) OF VARCHAR2(2); --定义长度为11的数组
INIT_ARRAY TYPE_ARRAY := TYPE_ARRAY('01',
'02',
'03',
'04',
'05',
'06',
'07',
'08',
'09',
'10',
'11');
--初始化数组的11个字符
BEGIN
FOR I IN 1 .. INIT_ARRAY.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(INIT_ARRAY(I));
END LOOP;
END TEST1;
------解决方案--------------------
oracle存储过程在没有参数的情况下,不用加()