简单动机:出于对运行速度的无法忍受,我将嵌套sql语句中关于group by的内容放入临时表,作为中间变量。
简单做法:第一次使用临时表,查看有事务级别和会话级别2种,我选会话级别的即可。
简单理解:一次DB连接就是一次会话,如果有N个用户连接DB,大家都可以来用这个临时表,即为“全局”;但是需要隔离各自的内容,互不干扰,所以是会话级别的;所谓“临时”,即会话结束后,系统帮助清空,很方便。表内内容应该是存在内存里面的。
CREATE OR REPLACE PROCEDURE P_WY_NE_ZTE_LAC_CI AS
BEGIN
/*ZTE 后台以 BSC,BTS,CELL 唯一标识小区,而LAC,CI是要配置数据关联过来的*/
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
DELETE IBTS_BTS_NOW WHERE RECDATE = TRUNC(SYSDATE);
COMMIT;
INSERT INTO
IBTS_BTS_BSCCONFSETID_TEMP SELECT BSC, MIN(CONFSETID) CONFSETID
FROM IBTS_BTS
WHERE RECDATE = TRUNC(SYSDATE)
GROUP BY BSC;
COMMIT;
INSERT /*APPEND*/
INTO IBTS_BTS_NOW
SELECT *
FROM IBTS_BTS
WHERE RECDATE = TRUNC(SYSDATE)
AND (BSC, CONFSETID) IN (SELECT * FROM IBTS_BTS_BSCCONFSETID_TEMP);
COMMIT;
DELETE IBTS_BTS_NOW WHERE RECDATE <= TRUNC(SYSDATE) - 30;
COMMIT;
END;
-- Create table
create global temporary table
IBTS_BTS_BSCCONFSETID_TEMP(
bsc NUMBER(10) not null,
confsetid NUMBER
)
on commit preserve rows;
分享到:
相关推荐
CREATE GLOBAL TEMPORARY TABLE temp_table ( column1 datatype, column2 datatype, ... ) ON COMMIT DELETE ROWS; ``` 这里的`ON COMMIT DELETE ROWS`选项表示当事务提交时,表中的所有数据将被删除。 2. *...
sql> create global temporary table xay_temp as select * from xay on commit preserve rows / on commit delete rows; ``` **解析**: - `create global temporary table`: 创建全局临时表。 - `on commit ...
- 使用`CREATE GLOBAL TEMPORARY TABLE`语句创建临时表。 - 可以通过`ON COMMIT`子句来定义数据的生命周期,即数据在何时被清除。 #### 三、创建临时表 **1. 基本语法:** ```sql CREATE GLOBAL TEMPORARY TABLE ...
- **全局临时表**(Global Temporary Table, GGT):不同于会话级临时表,全局临时表可以在整个数据库实例内共享,并且可以在提交或回滚事务后保留数据,直到下一次插入新数据覆盖为止。 #### 四、临时表的创建与...
1. **创建临时表**: 创建临时表的语法与创建普通表类似,但需在表名前加上关键字"GLOBAL TEMPORARY TABLE"。例如: ```sql CREATE GLOBAL TEMPORARY TABLE temp_table ( column1 datatype, column2 datatype, ....
- **创建**:`CREATE GLOBAL TEMPORARY TABLE <table_name> (column1 datatype, column2 datatype, ...) ON COMMIT PRESERVE ROWS;` - **示例**:创建会话级临时表`tmp_user_session`,该表在会话结束时数据会被...
DECLARE GLOBAL TEMPORARY TABLE SESSION.t_projects AS ( full select ) DEFINITION ONLY ON COMMIT PRESERVE ROWS NOT LOGGED WITH REPLACE IN TABLESPACE apptemps; ``` 最后,我们提到了几个与时间相关的内置...
- 示例:`CREATE GLOBAL TEMPORARY TABLE tmp_user_session (user_id INT, user_name VARCHAR2(20), user_email VARCHAR2(30)) ON COMMIT PRESERVE ROWS;` 2. **事务级临时表** - 创建时使用`ON COMMIT DELETE ...
CREATE GLOBAL TEMPORARY TABLE Table_Name (Col1 Type1, Col2 Type2...) ON COMMIT PRESERVE ROWS; ``` 例如: ```sql CREATE GLOBAL TEMPORARY TABLE Student (Stu_id NUMBER(5), Class_id NUMBER(5), Stu_...
CREATE GLOBAL TEMPORARY TABLE Table_Name ( Col1 Type1, Col2 Type2 ) ON COMMIT PRESERVE ROWS; ``` 示例: ```sql CREATE GLOBAL TEMPORARY TABLE Student ( Stu_id NUMBER(5), Class_id NUMBER(5), Stu_...
CREATE GLOBAL TEMPORARY TABLE 语句可以用于创建临时表。例如,CREATE GLOBAL TEMPORARY TABLE ... 12. Free space after delete 在删除数据后,Oracle 9i 数据库中会留下空闲空间。这个空闲空间可以用于将来插入...
本文将详细介绍如何在Oracle中创建临时表,并探讨其应用场景以及两种主要类型的临时表:全局临时表(Global Temporary Table)与局部临时表(Local Temporary Table)的区别及其使用方法。 #### 二、Oracle临时表...
- Oracle的全局临时表语法:`CREATE GLOBAL TEMPORARY TABLE aa(col number) ON COMMIT PRESERVE ROWS`,可以选择在事务处理结束后保留或删除数据。 - Sql server使用`SELECT * INTO #temptable FROM existed ...
CREATE GLOBAL TEMPORARY TABLE TABLE_NAME (COUMNS …) AS SELECT … FROM TABLE ON COMMIT DELETE ROWS; ``` 2. **会话级临时表**: 使用`ON COMMIT PRESERVE ROWS`选项创建。在这种情况下,数据会在当前...
- **Oracle**:`CREATE GLOBAL TEMPORARY TABLE aa (col NUMBER) ON COMMIT PRESERVE ROWS;` - **SQL Server**:`SELECT * INTO #tempTable FROM existedTable` ##### 查询方面 - 查找表的前N行记录: - **...
CREATE GLOBAL TEMPORARY TABLE table_name (column_specification) ON COMMIT PRESERVE ROWS; ``` 2. 事务级临时表: ```sql CREATE GLOBAL TEMPORARY TABLE table_name (column_specification) ON COMMIT DELETE ...
- **Oracle**:`CREATE GLOBAL TEMPORARY TABLE table1 (c int) ON COMMIT PRESERVE ROWS;` - Oracle 中使用 `GLOBAL TEMPORARY TABLE` 来创建临时表。这类表的特点是在事务提交后保留其内容,直到下一个事务开始时...
9. 临时表:CREATE TEMPORARY TABLE语句用于创建临时表。 10. UNION关键字:UNION关键字能够将两个或多个SELECT语句的结果连接起来。 11. 连接语句:连接语句的格式为mysql -h myhost.example。 12. 查看版本语句...
CREATE [GLOBAL TEMPORARY] TABLE table_name ( Column_name type [CONSTRAINT constraint_def DEFAULT default_exp], ... )[ON COMMIT {DELETE|PRESERVE} ROWS] TABLESPACE tab_space; ``` **语法解释**: 1. **...
CREATE GLOBAL TEMPORARY TABLE table (column datatype [DEFAULT expr] [{ NULL | NOT NULL}], [column datatype [DEFAULT expr] [ {NULL | NOT NULL} ]...) ON COMMIT {DELETE | PRESERVE} ROWS; ``` 其中,`ON...