哪位能帮我实现如下功能的存储过程(在Oracle中):
有一个视图View_Test: ID varchar2(10);
                     NAME varchar2(50);
                     DESCRIPTION varchar2(100)
我想用存储过程实现新建一个表,再向新建的表里将视图View_Test中记录都写进去。最好哪位能帮我写一个完整实现此功能的存储过程!!!谢谢!(咱是初学者,呵呵)

解决方案 »

  1.   

    create or replace procedure aaa(
    av_errid          out         number) 
    is
    v_str             varchar2(2000);begin
      v_str := 'create table table_name(ID   varchar2(10),NAME   varchar2(50),DESCRIPTION   varchar2(100)  );';
      execute immediate v_str ;
      
      begin
        insert into table_name (id,name,description)
        select * from View_Test;
      exception
        when others then
        rollback;
        av_errid := 1;
      end ;
      
      commit;
      av_errid := 0 ;
      
    end aaa;没怎么测试
      

  2.   

    这句也要: insert   into   table_name   (id,name,description) 
     execute   immediate  ''
      

  3.   

    好像不行啊!!!
    我执行了,但有错误。提示在“insert   into   table_name   (id,name,description) 
            select   *   from   View_Test; 

    这个地方表或视图不存在!是不是创建表和向新增的表中添加记录不能同步啊?
      

  4.   

    declare 
    begin 
        execute   immediate   'create   table   table_name as select * from View_Test'; 
    end  ;