PROCEDURE AddTab(p_IDs out t_tabId,p_str in out river.name%TYPE)IS
v_tabname river.name%TYPE;
CURSOR c_Tabnames IS
select table_name from user_tables;
BEGIN
OPEN c_Tabnames;
LOOP
FETCH c_Tabnames into v_tabname;
EXIT WHEN c_Tabnames%NOTFOUND;
p_IDs(p_str):=v_tabname;
END LOOP﹔ --這個地方加上'﹔'號
END AddTab;
v_tabname river.name%TYPE;
CURSOR c_Tabnames IS
select table_name from user_tables;
BEGIN
OPEN c_Tabnames;
LOOP
FETCH c_Tabnames into v_tabname;
EXIT WHEN c_Tabnames%NOTFOUND;
p_IDs(p_str):=v_tabname;
END LOOP﹔ --這個地方加上'﹔'號
END AddTab;
PROCEDURE AddTab(p_Names out t_tabName,str in out river.name%TYPE,p_nub in out binary_integer)IS
v_tabname river.name%TYPE;
CURSOR c_Tabnames IS
select table_name from user_tables;
BEGIN
p_nub:=0;
OPEN c_Tabnames;
LOOP
FETCH c_Tabnames into v_tabname;
EXIT WHEN c_Tabnames%NOT FOUND;
p_nub:=p_NumTabs+1;
p_IDs.nub:=p_nub;(或改为p_IDs(nub):=p_nub)
p_IDs.Name:=v_tabname;(p_IDs(Name):=v_tabname 仍有错)
END LOOP;
END AddTab;
说Invalid,怎么改呢???
v_tabname river.name%TYPE;
CURSOR c_Tabnames IS
select table_name from user_tables;
num number:=1;
BEGIN
OPEN c_Tabnames;
LOOP
FETCH c_Tabnames into v_tabname;
EXIT WHEN c_Tabnames%NOTFOUND;
p_ids.exdent;
p_IDs(num):=v_tabname;
num:=num+1;
END LOOP; --這個地方加上'﹔'號
close c_Tabnames;
END AddTab;
declare
v_tab B1.t_tabId;
v_counter binary_integer:=1;
v_num binary_integer:=10;
BEGIN
B1.AddTab(v_tab,v_num);
FOR v_counter IN 1..v_num LOOP
INSERT INTO temp_tab(Name)
values(v_tab(v_counter));
END LOOP;
END;
但错误总停在第一行,说引用未初始化的收集?什么原因呢
-----------------------------
p_nub:=p_NumTabs+1;
p_IDs.nub:=p_nub;(或改为p_IDs(nub):=p_nub)
p_IDs.Name:=v_tabname;(p_IDs(Name):=v_tabname 仍有错)
-----------------------------我没有看懂你的p_IDs、p_NumTabs这两个变量咯 :(