`

Oracle统计时用全局临时表,新建oracle作业

阅读更多
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存储过程中使用临时表

    本篇文章将深入探讨如何在Oracle存储过程中使用临时表,包括会话级临时表和事务级临时表。 ### 会话级临时表 会话级临时表(Session-Level Temporary Tables)只在创建它的会话内可见,并且在会话结束时自动删除。...

    Oracle兼容性和全局临时表的实现.pptx

    Oracle兼容性和全局临时表的实现主要关注的是在数据库迁移过程中如何确保原有的功能特性和性能不受影响,特别是针对全局临时表的使用。Oracle数据库系统中,全局临时表是一种特殊类型的表,它的数据只对创建它的会话...

    ORACLE中临时表

    Oracle中的临时表是一种特殊的数据结构,用于存储会话或事务期间的数据,这些数据仅对当前会话可见,并在特定条件下...在使用临时表时,应考虑其生命周期、数据隔离性和性能影响,确保符合应用程序的需求和性能优化。

    oracle临时表(事务级、会话级).docx

    "Oracle 临时表(事务级、会话级)" Oracle 临时表是 Oracle 数据库中的一种特殊类型的表,它可以保存...在 Oracle 中,临时表可以分为事务级和会话级,而在 SQL Server 中,临时表可以分为本地临时表和全局临时表。

    Oracle创建表空间、临时表、用户及用户授权

    临时表空间用于存储临时结果集,通常在执行排序、聚合或联接操作时使用。在上述示例中,`abs_test_temp` 是一个临时表空间,创建过程类似: ``` create temporary tablespace abs_test_temp tempfile 'D:\...

    主流数据库中临时表的使用

    如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。 Oracle 中的临时表 在 Oracle 中,临时表用来保存事务或会话期间的中间结果。在临时表中保存的数据...

    Oracle中临时表的创建

    本文将详细介绍如何在Oracle中创建临时表,并探讨其应用场景以及两种主要类型的临时表:全局临时表(Global Temporary Table)与局部临时表(Local Temporary Table)的区别及其使用方法。 #### 二、Oracle临时表...

    Oracle 临时表空间使用注意

    而对于小型产品数据库,如果数据量不大,或者大型操作不频繁,通常可以使用默认的全局临时表空间,这样可以简化管理,同时也能满足大多数操作的需求。 另外,为了优化性能,还可以考虑以下几点: 1. **预分配大小**...

    PostgreSQLOracle风格的全局临时表

    这可能是一个扩展或一组存储过程,它实现了类似于Oracle全局临时表的逻辑,使PostgreSQL用户也能享受到相同的功能,尤其是在进行数据迁移或需要临时数据存储的场景下。 标签“SQL”表明这个主题与结构化查询语言...

    不让临时表空间影响ORACLE数据库性能

    - **排序操作**:Oracle在内存中进行排序时,如果内存不足,会将数据写入临时表空间。 - **聚合操作**:GROUP BY和UNION ALL等聚合操作也可能利用临时表空间。 - **JOIN操作**:大表连接时,可能需要在临时表空间...

    Java调用oracle存储过程通过游标返回临时表

    临时表(也称为全局临时表)是只在当前会话中可见的表,数据在会话结束时自动删除。在存储过程中创建临时表,可以避免对永久表进行频繁的增删改操作,提高效率。 调用Oracle存储过程并处理返回的游标(Cursor)在...

    oracle,sql临时表.pdf

    本地临时表仅对创建它的会话可见,而全局临时表对所有会话可见,但只有在创建它的会话结束时才会消失。 总的来说,Oracle的临时表为数据库管理提供了灵活且高效的数据存储解决方案,尤其适用于处理会话或事务级别的...

    不要让临时表空间影响数据库性能

    然而,当排序区的空间不足时,Oracle会将超出内存容量的临时数据存储到临时表空间中。 临时表空间在数据库操作中扮演着关键角色,尤其是在处理复杂查询和大型数据集时。虽然看似只是临时存储,但实际上它对数据库...

    oracle,sql临时表.docx

    创建全局临时表的语句是`CREATE GLOBAL TEMPORARY TABLE`,它可以指定为事务特定或会话特定。对于事务特定的临时表,数据在事务生命周期内有效;而对于会话特定的临时表,数据在会话期间有效。当会话结束或事务结束...

    SQL Server中关于临时表概念及创建和插入数据等问题

    全局临时表以两个井号 (##) 开头的那些表名,在所有连接上都能看到全局临时表。 在 SQL Server 中创建临时表可以使用以下语句: ```sql SqlCommand cm = new SqlCommand("create table #t(dc0 int)", conn); cm....

    OracleTemporaryTables(Oracle临时表).docx

    - 全局临时表对所有用户可见,所有引用该表的会话断开连接后才会删除。 - 相比之下,Oracle的临时表更注重会话级别数据的管理,而SQL Server的临时表提供了更多控制和可见性选项。 **总结:** Oracle Temporary ...

    Oracle优化, 优化查询速度,目前所有使用Oracle作为数据库支撑平台的应用

    Oracle临时表有两种主要类型:全局临时表(GTT)和局部临时表(LTT)。这里我们主要讨论全局临时表,因为它更适用于大型系统中的数据处理。 - **全局临时表 (GTT)**: - **On Commit Preserve Rows**:当事务提交...

    对比Oracle临时表和SQL Server临时表的不同点

    - **生命周期**:SQL Server的临时表也有会话级和事务级的概念,但通常情况下,临时表(#temp_table)在会话结束时清空,全局临时表(##temp_table)在最后一个引用它的会话结束后清空。 - **数据可见性**:SQL ...

    OracleTemporaryTables(Oracle临时表).pdf

    全局临时表(##开头)对所有用户可见,所有引用它的连接断开后才删除。 - **内存存储**:SQL Server的临时表实际上是存储在tempdb系统数据库中的,而不是内存中,这与Oracle不同。 总结来说,Oracle Temporary ...

    简单理解数据库临时表

    - **全局临时表**(Global Temporary Table, GGT):不同于会话级临时表,全局临时表可以在整个数据库实例内共享,并且可以在提交或回滚事务后保留数据,直到下一次插入新数据覆盖为止。 #### 四、临时表的创建与...

Global site tag (gtag.js) - Google Analytics