网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
本文导读

展开导读

DBE_SCHEDULER

更新时间:2024-12-19 GMT+08:00
分享

接口介绍

高级功能包DBE_SCHEDULER支持通过调度(schedule)和程序(program)更加灵活的创建定时任务。支持的所有接口请见表1

须知:

DBE_SCHEDULER尚不支持节点间同步定时任务,若要创建多节点定时任务请使用DBE_TASK接口实现。

表1 DBE_SCHEDULER

接口名称

描述

DBE_SCHEDULER.CREATE_JOB

创建定时任务。

DBE_SCHEDULER.DROP_JOB

删除定时任务。

DBE_SCHEDULER.DROP_SINGLE_JOB

删除单个定时任务。

DBE_SCHEDULER.SET_ATTRIBUTE

设置对象属性。

DBE_SCHEDULER.RUN_JOB

运行定时任务。

DBE_SCHEDULER.RUN_BACKEND_JOB

后台运行定时任务。

DBE_SCHEDULER.RUN_FOREGROUND_JOB

前台运行定时任务。

DBE_SCHEDULER.STOP_JOB

停止定时任务。

DBE_SCHEDULER.STOP_SINGLE_JOB

停止单个定时任务。

DBE_SCHEDULER.GENERATE_JOB_NAME

生成定时任务名。

DBE_SCHEDULER.CREATE_PROGRAM

创建程序。

DBE_SCHEDULER.DEFINE_PROGRAM_ARGUMENT

定义程序参数。

DBE_SCHEDULER.DROP_PROGRAM

删除程序。

DBE_SCHEDULER.DROP_SINGLE_PROGRAM

删除单个程序。

DBE_SCHEDULER.SET_JOB_ARGUMENT_VALUE

设置定时任务参数值。

DBE_SCHEDULER.CREATE_SCHEDULE

创建调度。

DBE_SCHEDULER.DROP_SCHEDULE

删除调度。

DBE_SCHEDULER.DROP_SINGLE_SCHEDULE

删除单个调度。

DBE_SCHEDULER.CREATE_JOB_CLASS

创建定时任务类。

DBE_SCHEDULER.DROP_JOB_CLASS

删除定时任务类。

DBE_SCHEDULER.DROP_SINGLE_JOB_CLASS

删除单个定时任务类。

DBE_SCHEDULER.GRANT_USER_AUTHORIZATION

赋予用户特殊权限。

DBE_SCHEDULER.REVOKE_USER_AUTHORIZATION

撤销用户特殊权限。

DBE_SCHEDULER.CREATE_CREDENTIAL

创建证书。

DBE_SCHEDULER.DROP_CREDENTIAL

销毁证书。

DBE_SCHEDULER.ENABLE

启用对象。

DBE_SCHEDULER.ENABLE_SINGLE

启用单个对象。

DBE_SCHEDULER.DISABLE

停用对象。

DBE_SCHEDULER.DISABLE_SINGLE

停用单个对象。

DBE_SCHEDULER.EVAL_CALENDAR_STRING

分析Calendar格式字符串。

DBE_SCHEDULER.EVALUATE_CALENDAR_STRING

分析Calendar格式字符串。

  • DBE_SCHEDULER.CREATE_JOB

    创建一个定时任务。

    DBE_SCHEDULER.CREATE_JOB函数原型可以分为4种:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    -- 内联调度和程序的定时任务
    DBE_SCHEDULER.CREATE_JOB(
    job_name TEXT,
    job_type TEXT,
    job_action TEXT,
    number_of_arguments INTEGER             DEFAULT 0,
    start_date TIMESTAMP WITH TIME ZONE     DEFAULT NULL,
    repeat_interval TEXT                    DEFAULT NULL,
    end_date TIMESTAMP WITH TIME ZONE       DEFAULT NULL,
    job_class TEXT            DEFAULT 'DEFAULT_JOB_CLASS',
    enabled BOOLEAN                         DEFAULT FALSE,
    auto_drop BOOLEAN                       DEFAULT TRUE,
    comments TEXT                           DEFAULT NULL,
    credential_name TEXT                    DEFAULT NULL,
    destination_name TEXT                   DEFAULT NULL
    )
    
    -- 引用创建好的调度和程序的定时任务
    DBE_SCHEDULER.CREATE_JOB(
    job_name TEXT,
    program_name TEXT,
    schedule_name TEXT,
    job_class TEXT            DEFAULT 'DEFAULT_JOB_CLASS',
    enabled BOOLEAN                         DEFAULT FALSE,
    auto_drop BOOLEAN                       DEFAULT TRUE,
    comments TEXT                           DEFAULT NULL,
    job_style TEXT                          DEFAULT 'REGULAR',
    credential_name TEXT                    DEFAULT NULL,
    destination_name TEXT                   DEFAULT NULL
    )
    
    -- 引用创建好的程序,内联调度的定时任务
    DBE_SCHEDULER.CREATE_JOB(
    job_name text,
    program_name TEXT,
    start_date TIMESTAMP WITH TIME ZONE     DEFAULT NULL,
    repeat_interval TEXT                    DEFAULT NULL,
    end_date TIMESTAMP WITH TIME ZONE       DEFAULT NULL,
    job_class TEXT            DEFAULT 'DEFAULT_JOB_CLASS',
    enabled BOOLEAN                         DEFAULT FALSE,
    auto_drop BOOLEAN                       DEFAULT TRUE,
    comments TEXT                           DEFAULT NULL,
    job_style TEXT                          DEFAULT 'REGULAR',
    credential_name TEXT                    DEFAULT NULL,
    destination_name TEXT                   DEFAULT NULL
    )
    
    -- 引用创建好的调度,内联程序的定时任务
    DBE_SCHEDULER.CREATE_JOB(
    job_name TEXT,
    schedule_name TEXT,
    job_type TEXT,
    job_action TEXT,
    number_of_arguments INTEGER             DEFAULT 0,
    job_class TEXT             DEFAULT 'DEFAULT_JOB_CLASS',
    enabled BOOLEAN                         DEFAULT FALSE,
    auto_drop BOOLEAN                       DEFAULT TRUE,
    comments TEXT                           DEFAULT NULL,
    credential_name TEXT                    DEFAULT NULL,
    destination_name TEXT                   DEFAULT NULL
    )
    
    说明:

    利用DBE_SCHEDULER创建的定时任务不会与DBE_TASK中的定时任务相冲突。

    DBE_SCHEDULER创建的定时任务会生成对应的job_id,但是在使用过程中这个id并没有实际意义。

    表2 DBE_SCHEDULER.CREATE_JOB接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    job_name

    text

    IN

    定时任务名称。

    job_type

    text

    IN

    定时任务内联程序类型,可用类型为:
    • 'PLSQL_BLOCK':匿名存储过程快。
    • 'STORED_PROCEDURE':保存的存储过程。
    • 'EXTERNAL_SCRIPT':外部脚本。

    job_action

    text

    IN

    定时任务内联程序执行内容。

    number_of_arguments

    integer

    IN

    定时任务内联程序参数个数。

    program_name

    text

    IN

    定时任务引用程序名称。

    start_date

    timestamp with time zone

    IN

    定时任务内联调度起始时间。

    repeat_interval

    text

    IN

    定时任务内联调度任务周期。

    end_date

    timestamp with time zone

    IN

    定时任务内联调度失效时间。

    schedule_name

    text

    IN

    定时任务引用调度名称。

    job_class

    text

    IN

    定时任务类名。

    enabled

    boolean

    IN

    定时任务启用状态。

    auto_drop

    boolean

    IN

    定时任务自动删除。

    comments

    text

    IN

    备注。

    job_style

    text

    IN

    定时任务行为模式,仅支持‘REGULAR'。

    credential_name

    text

    IN

    定时任务证书名。

    destination_name

    text

    IN

    定时任务目标名。

    示例:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 3, false, 'test');
     create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule1', NULL, 'sysdate', NULL, 'test');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_job(job_name=>'job1', program_name=>'program1', schedule_name=>'schedule1');
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule1');
     drop_schedule 
    ---------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
    须知:

    创建'EXTERNAL_SCRIPT'类型的定时任务需要管理员赋予相关的权限和证书,且需要数据库启动用户对该外部脚本有读取权限才可以正常生效。

  • DBE_SCHEDULER.DROP_JOB

    删除定时任务。

    DBE_SCHEDULER.DROP_JOB函数原型为:

    1
    2
    3
    4
    5
    6
    DBE_SCHEDULER.drop_job(
    job_name text,
    force boolean                           default false,
    defer boolean                           default false,
    commit_semantics text      default 'STOP_ON_FIRST_ERROR'
    )
    

    说明:

    DBE_SCHEDULER.DROP_JOB可以指定一个、多个任务,或指定任务类进行定时任务删除。

    表3 DBE_SCHEDULER.DROP_JOB接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    job_name

    text

    IN

    定时任务或定时任务类名称,可以指定一个或多个,当指定多个定时任务时需要利用逗号隔开

    force

    boolean

    IN

    删除定时任务行为标记位

    true:尝试先停止当前定时任务,再进行删除

    false:如果定时任务正在运行会删除失败

    defer

    boolean

    IN

    删除定时任务行为标记位

    true:允许定时任务完成后再进行删除

    commit_semantics

    text

    IN

    提交规则:

    'STOP_ON_FIRST_ERROR':在第一个报错之前的删除操作会提交

    'TRANSACTIONAL':事务级提交,报错前的删除操作会回滚

    'ABSORB_ERRORS':尝试越过报错,将成功的删除操作提交

    示例:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 3, false, 'test');
     create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule1', NULL, 'sysdate', NULL, 'test');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_job(job_name=>'job1', program_name=>'program1', schedule_name=>'schedule1');
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule1');
     drop_schedule 
    ---------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
    须知:

    commit_semantic中的'TRANSACTIONAL'选项必须在force为false的情况下才会生效。

  • DBE_SCHEDULER.DROP_SINGLE_JOB

    删除一个定时任务。

    DBE_SCHEDULER.DROP_SINGLE_JOB函数原型为:

    1
    2
    3
    4
    5
    DBE_SCHEDULER.drop_single_job(
    job_name text,
    force boolean                           default false,
    defer boolean                           default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 0, false, 'test');
     create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_job('job1', 'program1', '2021-07-20', 'interval ''3 minute''', '2121-07-20', 'DEFAULT_JOB_CLASS', false, false,'test', 'style', NULL, NULL);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_single_job('job1', false, false);
     drop_single_job 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
  • DBE_SCHEDULER.SET_ATTRIBUTE

    修改定时任务属性。

    DBE_SCHEDULER.SET_ATTRIBUTE函数4种原型为:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    DBE_SCHEDULER.set_attribute(
    name                    text,
    attribute               text,
    value                   boolean
    )
    
    DBE_SCHEDULER.set_attribute(
    name                    text,
    attribute               text,
    value                   text
    )
    
    DBE_SCHEDULER.set_attribute(
    name                    text,
    attribute               text,
    value                   timestamp
    )
    
    DBE_SCHEDULER.set_attribute(
    name                    text,
    attribute               text,
    value                   timestamp with time zone
    )
    
    DBE_SCHEDULER.set_attribute(
    name text,
    attribute text,
    value text,
    value2 text                             default NULL
    )
    

    说明:

    name在这里可以指定任何DBE_SCHEDULER内部的对象。

    表4 DBE_SCHEDULER.SET_ATTRIBUTE接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    name

    text

    IN

    对象名。

    attribute

    text

    IN

    属性名。

    value

    boolean/date/timestamp/timestamp with time zone/text

    IN

    属性值,可选属性如下:
    • 定时任务相关:job_type, job_action, number_of_arguments, start_date, repeat_interval, end_date, job_class, enabled, auto_drop, comments, credential_name, destination_name, program_name, schedule_name, job_style。
    • 程序相关:program_action, program_type, number_of_arguments, comments。
    • 调度相关:start_date, repeat_interval, end_date, comments。

    value2

    text

    IN

    额外属性值。保留参数位,目前尚不支持拥有额外属性值的目标属性。

    示例:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 3, false, 'test');
     create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.set_attribute('program1', 'number_of_arguments', 0);
     set_attribute 
    ---------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.set_attribute('program1', 'program_type', 'STORED_PROCEDURE');
     set_attribute 
    ---------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
    须知:

    不要使用DBE_SCHEDULER.SET_ATTRIBUTE来将参数置空。

    对象名不能通过DBE_SCHEDULER.SET_ATTRIBUTE来更改。

    内联对象不能通过DBE_SCHEDULER.SET_ATTRIBUTE来更改。

  • DBE_SCHEDULER.RUN_JOB

    运行定时任务。

    DBE_SCHEDULER.RUN_JOB函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.run_job(
    job_name text,
    use_current_session boolean             default true
    )
    

    说明:

    DBE_SCHEDULER.RUN_JOB主要用于立即运行定时作业,独立于定时任务本身的调度,甚至可以同时运行。

    表5 DBE_SCHEDULER.RUN_JOB接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    job_name

    text

    IN

    定时任务名称,可以指定一个或多个,当指定多个定时任务时需要利用逗号隔开。

    use_current_session

    boolean

    IN

    运行定时任务标志位:
    • true:使用当前会话运行,主要用于查看定时任务是否可以正常运行。
    • false:后台拉起定时任务,运行结果会打印到日志中。
    示例:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    gaussdb=# SELECT dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.run_job('job1', false);
     run_job 
    ---------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
    须知:

    use_current_session目前只作用于job_type为'EXTERNAL_SCRIPT'的定时任务上。

  • DBE_SCHEDULER.RUN_BACKEND_JOB

    后台运行定时任务。

    DBE_SCHEDULER.RUN_BACKEND_JOB函数原型为:

    1
    2
    3
    DBE_SCHEDULER.run_backend_job(
    job_name text
    )
    

    示例:

    gaussdb=# SELECT dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.run_backend_job('job1');
     run_backend_job 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
  • DBE_SCHEDULER.RUN_FOREGROUND_JOB

    当前会话运行定时任务。

    仅支持运行external 类型任务。

    返回值:text。

    DBE_SCHEDULER.RUN_FOREGROUND_JOB函数原型为:

    1
    2
    3
    DBE_SCHEDULER.run_foreground_job(
    job_name text
    )return text
    

    示例:

    gaussdb=# CREATE USER test1 IDENTIFIED BY '*********';
    NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
    CREATE ROLE
    gaussdb=# SELECT DBE_SCHEDULER.create_credential('cre_1', 'test1', '*********');
     create_credential 
    -------------------
    
    (1 row)
    
    gaussdb=# SELECT DBE_SCHEDULER.create_job(job_name=>'job1', job_type=>'EXTERNAL_SCRIPT', job_action=>'/usr/bin/pwd', enabled=>true, auto_drop=>false, credential_name => 'cre_1');
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.run_foreground_job('job1');
      run_foreground_job
    ---------------------------------
     Host key verification failed.\r+
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_credential('cre_1', false);
     drop_credential 
    -----------------
    
    (1 row)
    
    gaussdb=# DROP USER test1;
    DROP ROLE
  • DBE_SCHEDULER.STOP_JOB

    终止定时任务。

    DBE_SCHEDULER.STOP_JOB函数原型为:

    1
    2
    3
    4
    5
    DBE_SCHEDULER.stop_job(
    job_name text,
    force boolean                           default false,
    commit_semantics text                   default 'STOP_ON_FIRST_ERROR'
    )
    
    表6 DBE_SCHEDULER.STOP_JOB接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    job_name

    text

    IN

    定时任务或定时任务类名称,可以指定一个或多个,当指定多个定时任务时需要利用逗号隔开。

    force

    boolean

    IN

    删除定时任务行为标记位:
    • true:调度器会发送终止信号立即结束任务线程。
    • false:调度器会尝试利用打断信号终止定时任务线程。

    commit_semantics

    text

    IN

    提交规则:
    • 'STOP_ON_FIRST_ERROR':在第一个报错之前的打断操作会提交。
    • 'ABSORB_ERRORS':尝试越过报错,将成功的打断操作提交。

    示例:

    gaussdb=# SELECT dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.stop_job('job1', true, 'STOP_ON_FIRST_ERROR');
     stop_job 
    ----------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
  • DBE_SCHEDULER.STOP_SINGLE_JOB

    终止单个定时任务。

    DBE_SCHEDULER.STOP_SINGLE_JOB函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.stop_single_job(
    job_name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# SELECT dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.stop_single_job('job1', true);
     stop_single_job 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
  • DBE_SCHEDULER.GENERATE_JOB_NAME

    生成定时任务名称。

    DBE_SCHEDULER.GENERATE_JOB_NAME函数原型为:

    1
    2
    3
    DBE_SCHEDULER.generate_job_name(
    prefix text                             default 'JOB$_'
    )return text
    
    表7 DBE_SCHEDULER.GENERATE_JOB_NAME接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    prefix

    text

    IN

    生成名称的前缀,默认为'JOB$_',反复执行生成的定时任务名为:

    job$_1, job$_2, job$_3 ...

    示例:

    gaussdb=# CALL DBE_SCHEDULER.generate_job_name();
     generate_job_name 
    -------------------
     JOB$_1
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.generate_job_name();
     generate_job_name 
    -------------------
     JOB$_2
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.generate_job_name('job');
     generate_job_name 
    -------------------
     job3
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.generate_job_name('job');
     generate_job_name 
    -------------------
     job4
    (1 row)
    
    须知:

    首次执行DBE_SCHEDULER.GENERATE_JOB_NAME会在public下创建一个临时序列用于保存当前名称的序号。由于普通用户没有在public下create权限,因此如果普通用户为当前db下第一次调用该函数,会失败,需要授权该普通用户在public下的create权限,或者使用有该权限的用户调用该接口以创建临时序列。

  • DBE_SCHEDULER.CREATE_PROGRAM

    创建程序。

    DBE_SCHEDULER.CREATE_PROGRAM函数原型为:

    1
    2
    3
    4
    5
    6
    7
    8
    DBE_SCHEDULER.create_program(
    program_name text,
    program_type text,
    program_action text,
    number_of_arguments integer             default 0,
    enabled boolean                         default false,
    comments text                           default NULL
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 3, false, 'test');
     create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
  • DBE_SCHEDULER.DEFINE_PROGRAM_ARGUMENT

    定义程序参数。

    修正带默认值default_value字段的接口默认转换成小写行为,对字符大小写做出区分。

    DBE_SCHEDULER.DEFINE_PROGRAM_ARGUMENT函数原型为:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    DBE_SCHEDULER.define_program_argument(
    program_name text,
    argument_position integer,
    argument_name text                      default NULL,
    argument_type text,
    out_argument boolean                    default false
    )
    
    -- 带有默认值 --
    DBE_SCHEDULER.define_program_argument(
    program_name text,
    argument_position integer,
    argument_name text                      default NULL,
    argument_type text,
    default_value text,
    out_argument boolean                    default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 2, false, 'test');
    create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.define_program_argument('program1', 1, 'pa1', 'type1', false);
     define_program_argument 
    -------------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.define_program_argument('program1', 1, 'pa1', 'type1', 'value1', false);
     define_program_argument 
    -------------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
  • DBE_SCHEDULER.DROP_PROGRAM

    删除程序。

    DBE_SCHEDULER.DROP_PROGRAM函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.drop_program(
    program_name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 2, false, 'test');
    create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
  • DBE_SCHEDULER.DROP_SINGLE_PROGRAM

    删除单个程序。

    DBE_SCHEDULER.DROP_SINGLE_PROGRAM函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.drop_single_program(
    program_name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'STORED_PROCEDURE', 'SELECT pg_sleep(1);', 2, false, 'test');
    create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_single_program('program1', false);
     drop_single_program 
    ---------------------
    
    (1 row)
    
  • DBE_SCHEDULER.SET_JOB_ARGUMENT_VALUE

    设置定时任务参数值。argument_value字段支持赋空入参。

    DBE_SCHEDULER.SET_JOB_ARGUMENT_VALUE函数原型为:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    DBE_SCHEDULER.set_job_argument_value(
    job_name text,
    argument_position integer,
    argument_value text
    )
    
    DBE_SCHEDULER.set_job_argument_value(
    job_name text,
    argument_name text,
    argument_value text
    )
    

    示例:

    gaussdb=# CALL dbe_scheduler.create_job('job1','EXTERNAL_SCRIPT','BEGIN INSERT INTO test1 VALUES(12); end;',2,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.set_job_argument_value('job1', 1, 'value1');
     set_job_argument_value 
    ------------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
  • DBE_SCHEDULER.CREATE_SCHEDULE

    创建调度。

    DBE_SCHEDULER.CREATE_SCHEDULE函数原型为:

    1
    2
    3
    4
    5
    6
    7
    DBE_SCHEDULER.create_schedule(
    schedule_name text,
    start_date timestamp with time zone     default NULL,
    repeat_interval text,
    end_date timestamp with time zone       default NULL,
    comments text                           default NULL
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule1', sysdate, 'sysdate + 3 / (24 * 60 * 60)', null, 'test1');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule2', sysdate, 'FREQ=DAILY; BYHOUR=6;', null, 'test1');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule3', sysdate, 'FREQ=DAILY; BYHOUR=6;');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule1');
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule2', false);
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule3', true);
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
  • DBE_SCHEDULER.DROP_SCHEDULE

    删除调度。

    DBE_SCHEDULER.DROP_SCHEDULE函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.drop_schedule(
    schedule_name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule1', sysdate, 'sysdate + 3 / (24 * 60 * 60)', null, 'test1');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule2', sysdate, 'FREQ=DAILY; BYHOUR=6;', null, 'test1');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule3', sysdate, 'FREQ=DAILY; BYHOUR=6;');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule1');
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule2', false);
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_schedule('schedule3', true);
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
  • DBE_SCHEDULER.DROP_SINGLE_SCHEDULE

    删除单个调度。

    DBE_SCHEDULER.DROP_SINGLE_SCHEDULE函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.drop_single_schedule(
    schedule_name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule1', sysdate, 'sysdate + 3 / (24 * 60 * 60)', null, 'test1');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule2', sysdate, 'FREQ=DAILY; BYHOUR=6;', null, 'test1');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_schedule('schedule3', sysdate, 'FREQ=DAILY; BYHOUR=6;');
     create_schedule 
    -----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_single_schedule('schedule1');
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_single_schedule('schedule2', false);
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_single_schedule('schedule3', true);
     drop_single_schedule 
    ----------------------
    
    (1 row)
    
  • DBE_SCHEDULER.CREATE_JOB_CLASS

    创建定时任务类。

    DBE_SCHEDULER.CREATE_JOB_CLASS函数原型为:

    1
    2
    3
    4
    5
    6
    7
    8
    DBE_SCHEDULER.create_job_class(
    job_class_name text,
    resource_consumer_group text            default NULL,
    service text                            default NULL,
    logging_level integer                   default 0,
    log_history integer                     default NULL,
    comments text                           default NULL
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_job_class(job_class_name => 'jc1', resource_consumer_group => '123');
     create_job_class 
    ------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job_class('jc1', false);
     drop_job_class 
    ----------------
    
    (1 row)
    
  • DBE_SCHEDULER.DROP_JOB_CLASS

    删除定时任务类。

    DBE_SCHEDULER.DROP_JOB_CLASS函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.drop_job_class(
    job_class_name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_job_class(job_class_name => 'jc1', resource_consumer_group => '123');
     create_job_class 
    ------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job_class('jc1', false);
     drop_job_class 
    ----------------
    
    (1 row)
    
  • DBE_SCHEDULER.DROP_SINGLE_JOB_CLASS

    删除单个定时任务类。

    DBE_SCHEDULER.DROP_SINGLE_JOB_CLASS函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.drop_single_job_class(
    job_class_name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_job_class(job_class_name => 'jc1', resource_consumer_group => '123');
     create_job_class 
    ------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_single_job_class('jc1', false);
     drop_single_job_class 
    -----------------------
    
    (1 row)
    
  • DBE_SCHEDULER.GRANT_USER_AUTHORIZATION

    为数据库用户提供定时任务权限。调用该函数的用户需要具有SYSADMIN权限。

    DBE_SCHEDULER.GRANT_USER_AUTHORIZATION函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.grant_user_authorization(
    username                text,
    privilege               text
    )
    

    示例:

    gaussdb=# CREATE USER user1 PASSWORD '1*s*****';
    NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
    CREATE ROLE
    gaussdb=# CALL DBE_SCHEDULER.grant_user_authorization('user1', 'create job');
     grant_user_authorization 
    --------------------------
    
    (1 row)
    gaussdb=# DROP USER user1;
    DROP ROLE
  • DBE_SCHEDULER.REVOKE_USER_AUTHORIZATION

    撤销数据库用户的定时任务权限。调用该函数的用户需要具有SYSADMIN权限。

    DBE_SCHEDULER.REVOKE_USER_AUTHORIZATION函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.revoke_user_authorization(
    username                text,
    privilege               text
    )
    

    示例:

    gaussdb=# CREATE USER user1 PASSWORD '1*s*****';
    NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
    CREATE ROLE
    gaussdb=# CALL DBE_SCHEDULER.grant_user_authorization('user1', 'CREATE JOB');
     grant_user_authorization 
    --------------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.revoke_user_authorization('user1', 'CREATE JOB');
     revoke_user_authorization 
    ---------------------------
    
    (1 row)
    gaussdb=# DROP USER user1;
    DROP ROLE
  • DBE_SCHEDULER.CREATE_CREDENTIAL

    创建授权证书。调用该函数的用户需要具有SYSADMIN权限。

    DBE_SCHEDULER.CREATE_CREDENTIAL函数原型为:

    1
    2
    3
    4
    5
    6
    7
    8
    DBE_SCHEDULER.create_credential(
    credential_name         text,
    username                text,
    password                text            default NULL,
    database_role           text            default NULL,
    windows_domain          text            default NULL,
    comments                text            default NULL
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_credential('cre_1', 'user1', '');
     create_credential 
    -------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_credential('cre_1', false);
     drop_credential 
    -----------------
    
    (1 row)
    
须知:

DBE_SCHEDULER.CREATE_CREDENTIAL的password字段请传NULL或者'******',该参数仅做兼容性,不代表实际含义。禁止使用安装用户对应的os用户名创建证书。

  • DBE_SCHEDULER.DROP_CREDENTIAL

    销毁授权证书。调用该函数的用户需要具有SYSADMIN权限。

    DBE_SCHEDULER.DROP_CREDENTIAL函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.drop_credential(
    credential_name         text,
    force boolean default false
    )
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.create_credential('cre_1', 'user1', '');
     create_credential 
    -------------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_credential('cre_1', false);
     drop_credential 
    -----------------
    
    (1 row)
    
  • DBE_SCHEDULER.ENABLE

    启用对象。

    DBE_SCHEDULER.ENABLE函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.enable(
    name text,
    commit_semantics text                   default 'STOP_ON_FIRST_ERROR'
    )
    

    示例:

    gaussdb=# CALL dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'stored_procedure', 'INSERT INTO tb_job_test(key) VALUES(null);', 0, false, '');
     create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.enable('job1');
     enable 
    --------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.enable('program1', 'STOP_ON_FIRST_ERROR');
     enable 
    --------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
  • DBE_SCHEDULER.ENABLE_SINGLE

    启用单个对象。

    DBE_SCHEDULER.ENABLE_SINGLE函数原型为:

    1
    2
    3
    DBE_SCHEDULER.enable_single(
    name text
    )
    

    示例:

    gaussdb=# CALL dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.enable_single('job1');
     enable_single 
    ---------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
  • DBE_SCHEDULER.DISABLE

    禁用多个对象,name为逗号分隔的字符串,每个逗号分隔的字符串为一个对象。

    DBE_SCHEDULER.DISABLE函数原型为:

    1
    2
    3
    4
    5
    DBE_SCHEDULER.disable(
    name text,
    force boolean                           default false,
    commit_semantics text                   default 'STOP_ON_FIRST_ERROR'
    )
    

    示例:

    gaussdb=# CALL dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.create_program('program1', 'stored_procedure', 'INSERT INTO tb_job_test(key) VALUES(null);', 0, false, '');
     create_program 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.disable('job1');
     disable 
    ---------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.disable('program1', false, 'STOP_ON_FIRST_ERROR');
     disable 
    ---------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_program('program1', false);
     drop_program 
    --------------
    
    (1 row)
    
  • DBE_SCHEDULER.DISABLE_SINGLE

    禁用单个对象。

    DBE_SCHEDULER.DISABLE_SINGLE函数原型为:

    1
    2
    3
    4
    DBE_SCHEDULER.disable_single(
    name text,
    force boolean                           default false
    )
    

    示例:

    gaussdb=# CALL dbe_scheduler.create_job('job1','PLSQL_BLOCK','BEGIN INSERT INTO test1 VALUES(12); end;',0,null,null,null,'DEFAULT_JOB_CLASS',false,false,null,null,null);
     create_job 
    ------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.disable_single('job1', false);
     disable_single 
    ----------------
    
    (1 row)
    
    gaussdb=# CALL DBE_SCHEDULER.drop_job('job1', true, false, 'STOP_ON_FIRST_ERROR');
     drop_job 
    ----------
    
    (1 row)
    
  • DBE_SCHEDULER.EVAL_CALENDAR_STRING

    分析调度任务周期。

    返回值类型:timestamp with time zone

    DBE_SCHEDULER.EVAL_CALENDAR_STRING函数原型为:

    1
    2
    3
    4
    5
    DBE_SCHEDULER.evaluate_calendar_string(
    IN calendar_string text,
    IN start_date timestamp with time zone,
    IN return_date_after timestamp with time zone
    )return timestamp with time zone
    

    示例:

    gaussdb=# CALL DBE_SCHEDULER.eval_calendar_string('FREQ=DAILY; BYHOUR=6;', sysdate, sysdate);
      eval_calendar_string  
    ------------------------
     2023-09-15 06:47:24+08
    (1 row)
    
  • DBE_SCHEDULER.EVALUATE_CALENDAR_STRING

    分析调度任务周期。

    DBE_SCHEDULER.EVALUATE_CALENDAR_STRING函数原型为:

    1
    2
    3
    4
    5
    6
    DBE_SCHEDULER.evaluate_calendar_string(
    IN calendar_string text,
    IN start_date timestamp with time zone,
    IN return_date_after timestamp with time zone,
    OUT next_run_date timestamp with time zone
    )return timestamp with time zone
    

    示例:

    gaussdb=# CREATE OR REPLACE PROCEDURE pr1(calendar_str text) as
    DECLARE
        start_date        timestamp with time zone;
        return_date_after timestamp with time zone;
        next_run_date     timestamp with time zone;
    BEGIN
        start_date := '2003-2-1 10:30:00.111111+8'::timestamp with time zone;
        return_date_after := start_date;
        DBE_SCHEDULER.evaluate_calendar_string(
            calendar_str,
            start_date, return_date_after, next_run_date);
        DBE_OUTPUT.PRINT_LINE('next_run_date: ' || next_run_date);
        return_date_after := next_run_date;
    END;
    /
    CREATE PROCEDURE
    
    gaussdb=# CALL pr1('FREQ=hourly;INTERVAL=2;BYHOUR=6,10;BYMINUTE=0;BYSECOND=0');
    next_run_date: 2003-02-02 06:00:00+08
     pr1 
    -----
    
    (1 row)
提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容