Oracle、sqlserver、postgresql通过job名称获取job的DDL
时间: 2023-08-06 07:09:40 浏览: 63
对于Oracle数据库,可以使用以下SQL语句获取指定job名称的DDL:
```
SELECT DBMS_METADATA.GET_DDL('JOB', job_name) FROM user_scheduler_jobs WHERE job_name = 'your_job_name';
```
对于SQL Server数据库,可以使用以下SQL语句获取指定job名称的DDL:
```
SELECT definition FROM msdb.dbo.sysjobs WHERE name = 'your_job_name';
```
对于PostgreSQL数据库,可以使用以下SQL语句获取指定job名称的DDL:
```
SELECT pg_get_jobdef(jobid) FROM pg_agent.pga_job WHERE jobname = 'your_job_name';
```
相关问题
oracle、mysql、sqlserver、postgresql查询所有定时job名称
不同的数据库管理系统查询所有定时job名称的语法是不同的,具体如下:
Oracle:
```
SELECT JOB_NAME FROM USER_SCHEDULER_JOBS;
```
MySQL:
```
SELECT JOB_NAME FROM INFORMATION_SCHEMA.EVENTS;
```
SQL Server:
```
SELECT name as job_name FROM sysjobs
```
PostgreSQL:
```
SELECT proname as job_name FROM pg_proc WHERE proname LIKE 'pgagent_%';
```
注意,这些语句仅适用于默认安装的数据库管理系统,如果你的数据库管理系统有修改或者使用了第三方定时任务插件,可能需要调整查询语句。
oracle、mysql、sqlserver、postgresql根据触发器名获取触发器的DDL
1. Oracle:
在Oracle中,可以使用以下语句获取指定触发器的DDL:
```
SELECT DBMS_METADATA.GET_DDL('TRIGGER', '<TRIGGER_NAME>', '<OWNER>') FROM DUAL;
```
其中,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称,`<OWNER>`是指触发器所属的用户或模式。
2. MySQL:
在MySQL中,可以使用以下语句获取指定触发器的DDL:
```
SHOW CREATE TRIGGER `<TRIGGER_NAME>`;
```
其中,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称。
3. SQL Server:
在SQL Server中,可以使用以下语句获取指定触发器的DDL:
```
SELECT OBJECT_DEFINITION(OBJECT_ID('<TRIGGER_SCHEMA>.<TRIGGER_NAME>')) AS [TRIGGER_DEFINITION];
```
其中,`<TRIGGER_SCHEMA>`是指触发器所属的模式,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称。
4. PostgreSQL:
在PostgreSQL中,可以使用以下语句获取指定触发器的DDL:
```
SELECT PG_GET_TRIGGERDEF('<TRIGGER_NAME>', '<TABLE_NAME>', '<SCHEMA_NAME>');
```
其中,`<TRIGGER_NAME>`是指要获取DDL的触发器的名称,`<TABLE_NAME>`是指触发器所作用的表的名称,`<SCHEMA_NAME>`是指触发器所属的模式。