【问题标题】:Run a query based on weekends in oracle在 oracle 中运行基于周末的查询
【发布时间】:2015-06-08 02:44:52
【问题描述】:

我是 ORACLE 的新手;请帮忙 我正在尝试运行基于日期提取记录的查询;

如果日期是星期一,查询应该运行三次;即周一、周日、周六(前几天也是)其他日子(周二至周四仅限同一天);

【问题讨论】:

  • 为什么主题说oracle并且它被标记为SQL server?它们之间的日期处理存在很大差异
  • 您的标题是 Oracle,但您的标签是 SQL Server。请说明您正在使用哪个 RDBMS。

标签: oracle plsql dbms-scheduler


【解决方案1】:

首先,如果您想运行 3 次查询,则需要使用普通 SQL: PL-SQL, Java, C#, something. 以外的其他方式来执行此操作

但是,如果您希望将周六和周日的数据包含在周一的数据中,则需要执行 CASE 声明之类的操作,将周六和周日更改为周一。

 case when (trim(to_char((date), 'Day', 'NLS_DATE_LANGUAGE=ENGLISH'))
  in ('Saturday', 'Sunday', 'Monday')) then 'Monday'
  else trim(to_char((date), 'Day', 'NLS_DATE_LANGUAGE=ENGLISH')) 
 end

【讨论】:

    【解决方案2】:

    我正在尝试运行一个根据日期提取记录的查询

    对于基于日历的调度,Oracle 提供了DBMS_SCHEDULER

    例如,以下作业将每小时执行一次:

    SQL> BEGIN
      2    DBMS_SCHEDULER.DROP_JOB (JOB_NAME => 'test_full_job_definition');
      3  END;
      4  /
    
    PL/SQL procedure successfully completed.
    
    SQL>
    SQL> BEGIN
      2    DBMS_SCHEDULER.create_job (
      3      job_name        => 'test_full_job_definition',
      4      job_type        => 'PLSQL_BLOCK',
      5      job_action      => 'BEGIN my_job_procedure; END;',
      6      start_date      => SYSTIMESTAMP,
      7      repeat_interval => 'freq=hourly; byminute=0; bysecond=0;',
      8      end_date        => NULL,
      9      enabled         => TRUE,
     10      comments        => 'Job defined entirely by the CREATE JOB procedure.');
     11  END;
     12  /
    
    PL/SQL procedure successfully completed.
    
    SQL>
    SQL> SELECT JOB_NAME, ENABLED FROM DBA_SCHEDULER_JOBS where job_name ='TEST_FULL_JOB_DEFINITION'
      2  /
    
    JOB_NAME                                 ENABL
    ---------------------------------------- -----
    TEST_FULL_JOB_DEFINITION                 TRUE
    
    SQL>
    

    更多例子here

    【讨论】:

      猜你喜欢
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      相关资源
      最近更新 更多