1.新建Oracle全局临时表,代码如下:
DECLARE cnt int;
begin
--如果存在该临时表,则删除
SELECT count(1) into cnt from user_tables where table_name='TEMPLOGSMSHALL_SESSION';
if cnt>0 THEN
BEGIN
execute immediate 'DROP TABLE TEMPLOGSMSHALL_SESSION';
END;
end if;
end;
/
--创建临时表
CREATE GLOBAL TEMPORARY TABLE TempLogSmsHall_Session (
SESSIONID VARCHAR2(28) NOT NULL,
USERTELNO VARCHAR2(16) NOT NULL,
USERCITYNAME VARCHAR2(8) NOT NULL,
USERBRANDNAME VARCHAR2(16) NOT NULL,
NLIBIZNAME VARCHAR2(32) NOT NULL,
BIZNAME VARCHAR2(128) NOT NULL,
OPERATIONNAME VARCHAR2(16) NOT NULL,
SCENEHANDLETYPE VARCHAR2(32) NOT NULL,
SCENEHANDLEID VARCHAR2(6) NOT NULL,
SESSIONBEGINTIME TIMESTAMP NOT NULL,
SESSIONENDTIME TIMESTAMP NOT NULL,
ISTIMEOUT CHAR(1) DEFAULT '1' NOT NULL,
ALLCOSTSECONDS INTEGER DEFAULT (0) NOT NULL,
REVSMSNUM INTEGER DEFAULT (0) NOT NULL,
SENDSMSNUM INTEGER DEFAULT (0) NOT NULL
)
ON COMMIT PRESERVE ROWS;
上面创建的临时表,对于每个调用它的存储过程或PL/SQL块都是独立的,互不影响的。就是说允许两个PL/SQL同时调用,结果页不会互相影响。
2.新建Oracle作业,代码如下:
DECLARE job NUMBER;
begin
dbms_job.submit(job => job,
what => 'ECSS_JOB.SMSS10_Job_DailyStatus('''');',
next_date => trunc(sysdate) + ( 1 + 1/24),
interval => 'sysdate + 1');
commit;
end;
其中:job是系统自动产生编号,ECSS_JOB.SMSS10_Job_DailyStatus是一个过程(里面还有一个字符串参数),next_date设置下次执行时间,这里是明天早上1点,interval设置时间间隔,多久执行一次,这里是每天执行。trunc 函数用于去掉日期里的时间,也就是得到的是某天的00:00,时间是以天为单位的所以要得到某某点某某分,就需要分数:
1/24 一小时;
1/1440 一分;
1/3600 一秒;
另外,注意SQL不要执行多次,执行了几次就会提交几个作业
分享到:
相关推荐
本篇文章将深入探讨如何在Oracle存储过程中使用临时表,包括会话级临时表和事务级临时表。 ### 会话级临时表 会话级临时表(Session-Level Temporary Tables)只在创建它的会话内可见,并且在会话结束时自动删除。...
Oracle兼容性和全局临时表的实现主要关注的是在数据库迁移过程中如何确保原有的功能特性和性能不受影响,特别是针对全局临时表的使用。Oracle数据库系统中,全局临时表是一种特殊类型的表,它的数据只对创建它的会话...
Oracle中的临时表是一种特殊的数据结构,用于存储会话或事务期间的数据,这些数据仅对当前会话可见,并在特定条件下...在使用临时表时,应考虑其生命周期、数据隔离性和性能影响,确保符合应用程序的需求和性能优化。
"Oracle 临时表(事务级、会话级)" Oracle 临时表是 Oracle 数据库中的一种特殊类型的表,它可以保存...在 Oracle 中,临时表可以分为事务级和会话级,而在 SQL Server 中,临时表可以分为本地临时表和全局临时表。
临时表空间用于存储临时结果集,通常在执行排序、聚合或联接操作时使用。在上述示例中,`abs_test_temp` 是一个临时表空间,创建过程类似: ``` create temporary tablespace abs_test_temp tempfile 'D:\...
如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。 Oracle 中的临时表 在 Oracle 中,临时表用来保存事务或会话期间的中间结果。在临时表中保存的数据...
本文将详细介绍如何在Oracle中创建临时表,并探讨其应用场景以及两种主要类型的临时表:全局临时表(Global Temporary Table)与局部临时表(Local Temporary Table)的区别及其使用方法。 #### 二、Oracle临时表...
而对于小型产品数据库,如果数据量不大,或者大型操作不频繁,通常可以使用默认的全局临时表空间,这样可以简化管理,同时也能满足大多数操作的需求。 另外,为了优化性能,还可以考虑以下几点: 1. **预分配大小**...
这可能是一个扩展或一组存储过程,它实现了类似于Oracle全局临时表的逻辑,使PostgreSQL用户也能享受到相同的功能,尤其是在进行数据迁移或需要临时数据存储的场景下。 标签“SQL”表明这个主题与结构化查询语言...
- **排序操作**:Oracle在内存中进行排序时,如果内存不足,会将数据写入临时表空间。 - **聚合操作**:GROUP BY和UNION ALL等聚合操作也可能利用临时表空间。 - **JOIN操作**:大表连接时,可能需要在临时表空间...
临时表(也称为全局临时表)是只在当前会话中可见的表,数据在会话结束时自动删除。在存储过程中创建临时表,可以避免对永久表进行频繁的增删改操作,提高效率。 调用Oracle存储过程并处理返回的游标(Cursor)在...
本地临时表仅对创建它的会话可见,而全局临时表对所有会话可见,但只有在创建它的会话结束时才会消失。 总的来说,Oracle的临时表为数据库管理提供了灵活且高效的数据存储解决方案,尤其适用于处理会话或事务级别的...
然而,当排序区的空间不足时,Oracle会将超出内存容量的临时数据存储到临时表空间中。 临时表空间在数据库操作中扮演着关键角色,尤其是在处理复杂查询和大型数据集时。虽然看似只是临时存储,但实际上它对数据库...
创建全局临时表的语句是`CREATE GLOBAL TEMPORARY TABLE`,它可以指定为事务特定或会话特定。对于事务特定的临时表,数据在事务生命周期内有效;而对于会话特定的临时表,数据在会话期间有效。当会话结束或事务结束...
全局临时表以两个井号 (##) 开头的那些表名,在所有连接上都能看到全局临时表。 在 SQL Server 中创建临时表可以使用以下语句: ```sql SqlCommand cm = new SqlCommand("create table #t(dc0 int)", conn); cm....
- 全局临时表对所有用户可见,所有引用该表的会话断开连接后才会删除。 - 相比之下,Oracle的临时表更注重会话级别数据的管理,而SQL Server的临时表提供了更多控制和可见性选项。 **总结:** Oracle Temporary ...
Oracle临时表有两种主要类型:全局临时表(GTT)和局部临时表(LTT)。这里我们主要讨论全局临时表,因为它更适用于大型系统中的数据处理。 - **全局临时表 (GTT)**: - **On Commit Preserve Rows**:当事务提交...
- **生命周期**:SQL Server的临时表也有会话级和事务级的概念,但通常情况下,临时表(#temp_table)在会话结束时清空,全局临时表(##temp_table)在最后一个引用它的会话结束后清空。 - **数据可见性**:SQL ...
全局临时表(##开头)对所有用户可见,所有引用它的连接断开后才删除。 - **内存存储**:SQL Server的临时表实际上是存储在tempdb系统数据库中的,而不是内存中,这与Oracle不同。 总结来说,Oracle Temporary ...
- **全局临时表**(Global Temporary Table, GGT):不同于会话级临时表,全局临时表可以在整个数据库实例内共享,并且可以在提交或回滚事务后保留数据,直到下一次插入新数据覆盖为止。 #### 四、临时表的创建与...