读书人

ORACLE 在存储过程中应用临时表

发布时间: 2013-07-04 11:45:40 作者: rapoo

ORACLE 在存储过程中使用临时表
create ...is temptable_name varchar2(20); v_count number(1);begin temptable_name := 'TEMP_TABLENAME'; select count(*) into v_count from tab where tname = temptable_name; if(v_count = 0) then execute immediate 'create table ...'; else --其他表存在的操作 end if;?

?

2 注意使用时,可能会产生的错误:ORA-08103: object no longer exists,ORA-14452??attempt to create, alter or drop an index on temporary table already in use

?

ORA-14452 : 通过1的判断,一般会解决该问题。如果在表使用时,执行删除表操作,会出现该错误。

ORA-08103 : 使用事务级的临时表时,如果,事务提交前执行删除表操作或者在事务提交以后使用,就会产生这样的问题。改成会话级别的可以解决这个问题,但是在会话级别的数据的正确性,可能会因为使用连接池,同一个会话中不同操作而产生错误。

读书人网 >编程

热点推荐