直接建表吧,用完drop掉 比如临时表a在oracle中直接create table tmptablea as select * from tablename;
create table 呗 用完了 drop
可以通过动态创建表实现,步骤如下: 1、SELECT USERENV('sessionid') INTO V_SESSIONID FROM DUAL;--获取临时表名 2、检查临时表名是否存在,如存在,删除掉 SELECT COUNT(*) INTO V_COUNT FROM USER_TABLES WHERE TABLE_NAME='TMP'|| V_SESSIONID; IF V_COUNT>0 THEN EXECUTE IMMEDIATE 'DROP TABLE TMP'|| V_SESSIONID; END IF; 3、创建临时表 EXECUTE IMMEDIATE 'CREATE TABLE TMP'|| V_SESSIONID || '(COL1 VARCHAR2(100),COL2 VARCHAR2(100))';
比如临时表a在oracle中直接create table tmptablea as select * from tablename;
用完了
drop
1、SELECT USERENV('sessionid') INTO V_SESSIONID FROM DUAL;--获取临时表名
2、检查临时表名是否存在,如存在,删除掉
SELECT COUNT(*) INTO V_COUNT FROM USER_TABLES WHERE TABLE_NAME='TMP'|| V_SESSIONID;
IF V_COUNT>0 THEN
EXECUTE IMMEDIATE 'DROP TABLE TMP'|| V_SESSIONID;
END IF;
3、创建临时表
EXECUTE IMMEDIATE 'CREATE TABLE TMP'|| V_SESSIONID || '(COL1 VARCHAR2(100),COL2 VARCHAR2(100))';
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
冲突的问题更本不用考虑.
看来我多虑了