现在有60多个表,对每个表所要做的操作都是一样的,我就想声明一个数组,先把表名存进去,再直接用一个for循环就搞定,请问这样行吗?应该怎样写???

解决方案 »

  1.   

    过程与触发器当然可以声明字符串数组
    declare
    type t_arr is varray(100) of varchar2(20);
    v_arr t_arr:=t_arr();
    cursor t_sor is
    select table_name from user_tables;
    num number:=1;
    begin
    for v_sor in t_sor loop
    v_arr.exdent;
    v_arr(num):=v_sor.table_name;
    num:=num+1;
    end loop;
    end;
    /
      

  2.   

    beckhambobo(beckham) :写错了。
    declare
    type t_arr is varray(100) of varchar2(20);
    v_arr t_arr:=t_arr();
    cursor t_sor is
    select table_name from user_tables;
    num number:=1;
    begin
    for v_sor in t_sor loop
    v_arr.extend;---------------不是v_arr.exdent
    v_arr(num):=v_sor.table_name;
    num:=num+1;
    end loop;
    end;
    /