ORACLE中的global temporary table不会产生死锁的问题,因为每一个session都只能看到自己插入的数据
解决方案 »
- 在linux上ASMLib添加的分区要先格式化和挂载吗
- 求一条update语句 核心 是 换主键!!!!
- 如何用存储过程来定时导入文本数据文件到oracle
- 用MDB数据库开发的软件如何升级到ORACLE数据库
- 在线等 有关OEM
- oracle求触发器写法,在线等
- 一台数据库服务器中并存两个实例,如何作到?
- 客户端连接时出现 ora-12545 tns:name lookup failure 是怎么回事?服务器能连上!!!急!急!急!
- 高分求提高查询效率的方法
- 强烈建议:oracle的各位爱好者把自己知道的一些学习资源共享出来吧!!!!!
- 连system/manager都不能登陆了,怎么办???
- oracle如何将一个用户的表变成另一用户也可用(在线等待谢谢大家!)
1。会话特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT PRESERVE ROWS;2。事务特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧,我把下面两句话再贴一下:
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。请楼上两位仔细琢磨一下。另外冲突的问题更本不用考虑,这是临时表!不同的连接看到的rows是不一样的,这个临时表的概念和sqlserver或sybase的概念是不同的。drop table table_name;在存储过程里,不能直接写DDL语句,可以这样:
EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE MYTEMP(ID number(10),ID_NAME char(10)) on commit delete rows';