欢迎投稿

今日深度:

oracle 创建临时表,oracle创建

oracle 创建临时表,oracle创建


提交事务后会自动清空,不同的事务之间数据隔离 create global temporary table GLS_REPORT_EXPR (   EXPRNO VARCHAR2(30) not null,   EXPR   VARCHAR2(1024) ) on commit delete rows

oracle中创建临时表与创建普通表的不同

对全局临时表的总结

在临时表上的操作比在一般的表上的操作要快。因为:
1创建临时表不需要往编目表中插入条目,临时表的使用也不需要访问编目表,因此也没有对编目表的争用。
2仅有创建临时表的app才可存取临时表,所以在处理临时表时没有锁。
3如果指定NOT LOGGED选项,在处理临时表时不记日志。所以如果有仅在数据库的一个会话中使用的大量临时数据,把这些数据存入临时表能大大提高性能。
DECLARE GLOBAL TEMPORARY TABLE TT(C1 INT, C2 CHAR(20));
在CONNECT RESET命令后,临时表不再存在。
建临时表是动态编译的,所以对临时表的使用也必须放在DECLARE CURSER 后面
CREATE PROCEDURE INSTT2(P1 INT, P2 CHAR(20))
BEGIN
DECLARE GLOBAL TEMPORARY TABLE TT(C1 INT, C2 CHAR(20)) %
INSERT INTO SESSION.TT VALUES(P1, P2);
BEGIN
DECLARE C1 CURSOR WITH RETURN FOR SELECT * FROM SESSION.TT;
END;
END %

2。事务特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT DELETE ROWS;

在Oracle中,全局临时表并不会删除,实际上你只需要建立一次,以后直接应用就行了,这与MS和Sybase不一样。实际上在断开数据库连接时,临时表中数据自动清空,不同的Session之间是隔离的,不许要当心相互影响,不过如果起用了连接共享的话,你要用On Commit delete rows使数据仅在事物内部有效。
 

oracle怎建立一个临时表

你这个#AA是临时表的表名吧,起表名不能用#这样的符号吧!

alter GLOBAL TEMPORARY TABLE AAA
ON COMMIT DELETE ROWS
AS
SELECT * FROM AA;
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3552.html NewsArticle oracle 创建临时表,oracle创建 提交事务后会自动清空,不同的事务之间数据隔离 create global temporary table GLS_REPORT_EXPR ( EXPRNOVARCHAR2(30) not null , EXPRVARCHAR2(1024) ) on commit delete rows oracle中创建临...
评论暂时关闭