vtv:=vt(1,2,3,4,5)是什么意思?它不是sql語句

解决方案 »

  1.   

    直接写,不用动态执行.declare
    type  vt is table of number;
    vtv vt;
    begin
    vtv:=vt(1,2,3,4,5);
    for vc in 1..5 loop
    dbms_output.put_line(vtv(vc));
    end loop;
    dbms_output.new_line;
    end;
      

  2.   

    因为sql_tep的内容是可以变化的
    所以不想直接写,而想用动态执行.
      

  3.   

    declare
    type  vt is table of number;
    vtv vt;
    sql_tep VARCHAR2(50);
    begin
    sql_tep:='begin vtv:=vt(1,2,3,4,5) end;';
    execute  immediate sql_tep;
    for vc in 1..5 loop
    dbms_output.put_line(vtv(vc));
    end loop;
    dbms_output.new_line;
    end;
    /