扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
oracle可以创建临时表,ORACLE临时表有两种类型:会话级的临时表和事务级的临时表。
创新互联公司服务项目包括巢湖网站建设、巢湖网站制作、巢湖网页制作以及巢湖网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,巢湖网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到巢湖省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
1)ON
COMMIT
DELETE
ROWS
它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMIT)后,临时表的暂时段将被自动截断(TRUNCATE),但是临时表的结构
以及元数据还存储在用户的数据字典中。如果临时表完成它的使命后,最好删除临时表,否则数据库会残留很多临时表的表结构和元数据。
2)ON
COMMIT
PRESERVE
ROWS
它表示临时表的内容可以跨事物而存在,不过,当该会话结束时,临时表的暂时段将随着会话的结束而被丢弃,临时表中的数据自然也就随之丢弃。但是临时表的结构以及元数据还存储在用户的数据字典中。如果临时表完成它的使命后,最好删除临时表,否则数据库会残留很多临时表的表结构和元数据。
1:会话级的临时表的数据和你当前会话有关系,当前SESSION不退出的情况下,临时表中的数据就还存在,临时表的数据只有当你退出当前SESSION的时候才被截断(TRUNCATE
TABLE),如下所示:
会话级别的临时表创建:
CREATE
GLOBAL
TEMPORARY
TABLE
TMP_TEST
(
ID
NUMBER
,
NAME
VARCHAR2(32)
)
ON
COMMIT
PRESERVE
ROWS;
或
CREATE
GLOBAL
TEMPORARY
TABLE
TMP_TEST
ON
COMMIT
PRESERVE
ROWS
AS
SELECT
*
FROM
TEST;
操作示例:
SQL
CREATE
GLOBAL
TEMPORARY
TABLE
TMP_TEST
(
ID
NUMBER
,
NAME
VARCHAR2(32)
)
ON
COMMIT
PRESERVE
ROWS;
Table
created
SQL
INSERT
INTO
TMP_TEST
SELECT
1,
'kerry'
FROM
DUAL;
1
row
inserted
SQL
COMMIT;
Commit
complete
SQL
SELECT
*
FROM
TMP_TEST;
ID
NAME
----------
----------------
1
kerry
SQL
INSERT
INTO
TMP_TEST
SELECT
2,
'rouce'
FROM
DUAL;
1
row
inserted
SQL
ROLLBACK;
Rollback
complete
SQL
SELECT
*
FROM
TMP_TEST;
ID
NAME
----------
----------------------
1
kerry
SQL
2:事务级的临时表(默认),这种类型的临时表与事务有关,当进行事务提交或者事务回滚的时候,临时表的数据将自行截断,即当COMMIT或ROLLBACK时,数据就会被TRUNCATE掉,其它的特性和会话级的临时表一致。
事务级临时表的创建方法:
CREATE
GLOBAL
TEMPORARY
TABLE
TMP_TEST
(
ID
NUMBER
,
NAME
VARCHAR2(32)
)
ON
COMMIT
DELETE
ROWS;
或
CREATE
GLOBAL
TEMPORARY
TABLE
TMP_TEST
ON
COMMIT
DELETE
AS
SELECT
*
FROM
TEST;
SQL
CREATE
GLOBAL
TEMPORARY
TABLE
TMP_TEST
(
ID
NUMBER
,
NAME
VARCHAR2(32)
)
ON
COMMIT
DELETE
ROWS;
Table
created
SQL
INSERT
INTO
TMP_TEST
SELECT
1,
'kerry'
FROM
DUAL;
1
row
inserted
SQL
SELECT
*
FROM
TMP_TEST;
ID
NAME
----------
----------------------
1
kerry
SQL
COMMIT;
Commit
complete
SQL
SELECT
*
FROM
TMP_TEST;
ID
NAME
----------
------------------------
SQL
Oracle创建临时表的语法如下:
CREATE GLOBAL TEMPORARY TABLE table
"(" column datatype [DEFAULT expr] [{ NULL | NOT NULL}]
[, column datatype [DEFAULT expr] [ {NULL | NOT NULL} ]... ")"
ON COMMIT {DELETE | PRESERVE } ROWS ;
在Oracle中,可以创建以下两种临时表:
1) 会话特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
2) 事务特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
从数据库用户角度看,数据库中的数据是以表、视图等方式储存的。那么用户自己是怎么创建表的呢?简单的有两种方式,一种是用户可以在Oracle提供的SQL*Plus中使用CREATE TABLE语句创建表,也可以通过OEM图形化工具创建表。
工具/材料
电脑
Oracle 10g
CREATE TABLE创建表
01
首先用户必须要有CREATE TABLE系统权限,并且只能在自己的模式中创建表,图中的例子使用CREATE TABLE语句在当前模式中创建了一个共有5列的表:表的名称为employees,包含 emp_id, name, job,age,dep_id 等5列,后面的number、 varchar2、等为数据类型,括号里面为长度。
02
如果想要在其他模式中创建表,则必须在表名前加上模式名,并且用户还要有CREATE ANY TABLE系统权限,例如图中语句将在SYSTEM模式中创建employees1表
OEM创建表
01
在OEM主界面中选择【管理】选项卡,进入如图所示的数据库管理界面;然后在“数据库对象”中单击【表】选项。
02
系统进入管理表界面,在该页面中单击【创建】按钮,进入如图所示的“创建表的组织形式”界面。在该界面中用户可以选择创建的表类型---标准表、临时表或索引表。
03
在选择创建的表类型后,单击【继续】按钮,进入如图所示的“创建表”界面。在“名称”文本框中输入要创建表的名称。系统在“方案”文本框中显示当前模式,这表示新创建的表将属于该模式。
04
在“创建表”页面中选择“约束条件”选项卡,进入如图所示的“表约束条件”页面。该页面中用户可以为创建的表定义约束条件,包括主键约束(PRIMARY)、唯一约束(UNIQUE)、检查约束(CHECK)和外键(FOREIGN)约束。
05
设置储存参数,选择“储存”选项卡,进入如图所示的储存设置界面,最后保存表格,单机【确定】按钮,系统会根据用户对表的设置,创建一个新表。
你这个#AA是临时表的表名吧,起表名不能用#这样的符号吧!
alter GLOBAL TEMPORARY TABLE AAA
ON COMMIT DELETE ROWS
AS
SELECT * FROM AA;
Oracle创建临时表的语法如下:
CREATE
GLOBAL
TEMPORARY
TABLE
table
"("
column
datatype
[DEFAULT
expr]
[{
NULL
|
NOT
NULL}]
[,
column
datatype
[DEFAULT
expr]
[
{NULL
|
NOT
NULL}
]...
")"
ON
COMMIT
{DELETE
|
PRESERVE
}
ROWS
;
在Oracle中,可以创建以下两种临时表:
1)
会话特有的临时表
CREATE
GLOBAL
TEMPORARY
(
)
ON
COMMIT
PRESERVE
ROWS;
2)
事务特有的临时表
CREATE
GLOBAL
TEMPORARY
(
)
ON
COMMIT
DELETE
ROWS;
CREATE
GLOBAL
TEMPORARY
TABLE
MyTempTable
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流