日期:2014-05-17 浏览次数:20764 次
create or replace procedure test_proc as vs_sql varchar2(255) := 'drop table temp'; begin insert into temp(col1,col2) select col1, col2 from table1;--这块取营业额的逻辑和条件你自己想想,没时间写那么细了。 commit; --其实最好加上exception 的异常处理 --取名次后,DROP临时表 execute immediate vs_sql; end;
------解决方案--------------------
建立临时表的时候用会话级别的即可
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
------解决方案--------------------
SELECT vale1, value2 into Table2 from Table1; --Table2自动创建 ... drop table Table2 ;