create or replace procedure Liquidate(TData in VARCHAR2) is
v_count int;
t_str varchar2(100);
begin
  select count(*) into v_count from user_tables  where table_name='TargetTab';
  if v_count > 0 then
     insert into TargetTab select * From Tabs;
  else
     t_str='create table TargetTab as select * from Tabs'; 
     execute immediate t_str;
  end if;
  commit;
end Liquidate;该过程单独每句话都在command窗口里可执行
但在过程里就是出错。报表或视图不存在,也就是说只要系统里不存在该表,语句里用到了insert 就会报错不管做不做判断。(不知是否这样)
如果想实现我所说的功能该怎么做。谢谢了。急求
我老ID 密码忘了只能注册个新的。再次感谢

解决方案 »

  1.   

    哦  问题解决了
    我把 insert 语句也改成动态调用
    t_str= ‘insert into TargetTab select * From Tabs’;
    execute immediate t_str; 请问原因是什么
    有没有大大解释
      

  2.   

    TargetTab 不存在的话, insert into TargetTab select * From Tabs就出错了阿,你又没处理异常,而 execute immediate t_str的话,你t_str只要语法没问题就没问题了阿
      

  3.   

    这个问题怎么看着象我在ITPUB上回答的一个问题啊
      

  4.   

    啊  楼上的 能不能给个你在itpub上关于此问题的url?