当前位置:首页 > 开发 > 数据库 > 正文

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

发表于: 2012-02-13   作者:Ajita   来源:转载   浏览次数:
摘要: 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
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作业

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
当排序操作、重建索引等大型操作无法在内存中完成时,临时表空间将为排序提供便利。一般情况下临时
参考资料 1 Oracle临时表删除时的ORA-14452错误 http://blog.sina.com.cn/s/blog_695abcf70100m6ax.h
参考资料 1 Oracle临时表删除时的ORA-14452错误 http://blog.sina.com.cn/s/blog_695abcf70100m6ax.h
参考资料 1 Oracle临时表删除时的ORA-14452错误 http://blog.sina.com.cn/s/blog_695abcf70100m6ax.h
参考资料 1 Oracle临时表删除时的ORA-14452错误 http://blog.sina.com.cn/s/blog_695abcf70100m6ax.h
参考资料 1 Oracle临时表删除时的ORA-14452错误 http://blog.sina.com.cn/s/blog_695abcf70100m6ax.h
参考资料 1 Oracle临时表删除时的ORA-14452错误 http://blog.sina.com.cn/s/blog_695abcf70100m6ax.h
Oracle 临时表空间是Oracle数据库的重要组成部分,尽管该部分并没有cont体系结构上得以展现,但其重
参考资料 1 Oracle临时表删除时的ORA-14452错误 http://blog.sina.com.cn/s/blog_695abcf70100m6ax.h
作者:iamlaosong Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号