Schéma d'envoi automatique du rapport de statistiques de données Oracle

Schéma d'envoi automatique du rapport de statistiques de données Oracle


serveur de démonstration

implique :

10.74.132.107

10.74.132.17

11.71.253.66

11.71.253.126


Sens du flux de données : rm(10.74.132.107) -> 10.74.132.17 -> 11.71.253.66 -> 11.71.253.126 -> Web

Flux de données :
rm(10.74.132.107) -> 10.74.132.17 -> 11.71.253.66 -> 11.71.253.126 -> Web


1. 10.74.132.107, requête de données

Interroger le journal d'observation de la table de violation intégrée sur 10.74.132.107

----集成-违法表观察日志
----10.74.132.107
select TO_CHAR(SYSDATE,'yyyymmdd-hh24miss') RQ,'1_vio_jdczp_his' bm,to_char(lrsj,'yyyymmdd') sj,count(1) sl from vio_jdczp_his@tzq_jicheng t
group by to_char(lrsj,'yyyymmdd')
union all
select TO_CHAR(SYSDATE,'yyyymmdd-hh24miss') RQ,'2_vio_jdczp' bm,to_char(lrsj,'yyyymmdd') sj,count(1) sl from vio_jdczp@tzq_jicheng t
group by to_char(lrsj,'yyyymmdd')
order by 2,3;

2. Créez un lien de base de données sur 10.74.132.17/jzjjinf

2.1. Créez une liaison de données rm et connectez-vous à rm (10.74.132.85/racdb)

--在ti/[email protected]/jzjjinf上
create database link rm connect to rm identified by rm using '10.74.132.85/racdb';

2.2. Créez une liaison de données vers le 66 et connectez-vous au 66 (11.71.253.66/tzq)

create database link to66 connect to tzq identified by "1" using '11.71.253.66/tzq';

3. Créez et enregistrez des tables sur 11.71.253.66/tzq

3.1. Créer la table d'historique RM_VIO_JDCZP_AND_HIS

--在tzq/[email protected]/tzq上
-- Create table
create table RM_VIO_JDCZP_AND_HIS
(
  rq              VARCHAR2(100),
  bm              VARCHAR2(100),
  sj              VARCHAR2(100),
  sl              VARCHAR2(100)
)
tablespace TZQ
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

3.2. Créez droptable_ifexists() pour supprimer la table stockée

--create procedure
create or replace procedure droptable_ifexists(
p_table in varchar2
) is
v_count number(10);
begin
  select count(*) into v_count from user_tables where table_name=upper(p_table);
  if v_count>0 then
    execute immediate 'drop table '||p_table||' purge';
  end if;
end droptable_ifexists;

4. Sur 10.74.132.17, créez une sauvegarde et une tâche, et exécutez la sauvegarde à intervalles réguliers.

4.1. Créer et enregistrer

4.1.1. Créez droptable_ifexists() pour supprimer la table stockée

create or replace procedure droptable_ifexists(
p_table in varchar2
) is
v_count number(10);
begin
  select count(*) into v_count from user_tables where table_name=upper(p_table);
  if v_count>0 then
    execute immediate 'drop table '||p_table||' purge';
  end if;
end droptable_ifexists;
/

4.1.2. Créez et enregistrez GET_AND_SEND_VIO_JDCZP(), supprimez la table d'historique locale, reconstruisez la table d'historique en fonction des dernières données et effacez la table d'historique sur le serveur 66, puis insérez les données de la table d'historique locale dans la table 66 à distance.

CREATE OR REPLACE PROCEDURE get_and_send_vio_jdczp AS
BEGIN
  droptable_ifexists('RM_VIO_JDCZP_AND_HIS');
  EXECUTE IMMEDIATE '
create table RM_VIO_JDCZP_AND_HIS as
select TO_CHAR(SYSDATE,''yyyymmdd-hh24miss'') RQ,''1_vio_jdczp_his'' bm,to_char(lrsj,''yyyymmdd'') sj,count(1) sl from vio_jdczp_his@rm t
group by to_char(lrsj,''yyyymmdd'')
union all
select TO_CHAR(SYSDATE,''yyyymmdd-hh24miss'') RQ,''2_vio_jdczp'' bm,to_char(lrsj,''yyyymmdd'') sj,count(1) sl from vio_jdczp@rm t
group by to_char(lrsj,''yyyymmdd'')
order by 2,3
';
  dbms_utility.exec_ddl_statement@to66('truncate table RM_VIO_JDCZP_AND_HIS');
  EXECUTE IMMEDIATE 'insert into RM_VIO_JDCZP_AND_HIS@to66 
select * from RM_VIO_JDCZP_AND_HIS
';
  COMMIT;
END;
/

4.2. Créez une tâche et exécutez GET_AND_SEND_VIO_JDCZP() régulièrement à 17h36 tous les jours.

créer un emploi

DECLARE
  job_num NUMBER;
BEGIN
  dbms_job.submit(job_num
                 ,'GET_AND_SEND_VIO_JDCZP;'
                 ,SYSDATE
                 ,'TRUNC(sysdate+1)+17.6/24'); --每天17:36执行
  COMMIT;
END;

5. Connectez mstsc à 11.71.253.126 à partir de 11.71.253.66 sur le bureau à distance

Utilisez la commande mstsc remote connection desktop pour vous connecter à 11.71.253.126 sur 11.71.253.66.


Six, créer une table sur 11.71.253.126

Créer une table d'historique (RM_VIO_JDCZP_AND_HIS)

Créer table sur 11.71.253.126

create table RM_VIO_JDCZP_AND_HIS
(
  rq              VARCHAR2(100),
  bm              VARCHAR2(100),
  sj              VARCHAR2(100),
  sl              VARCHAR2(100)
)
tablespace TZQ
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

7. Créez une sauvegarde et une tâche sur 11.71.253.66, et la tâche exécutera la sauvegarde tous les jours.

7.1. Créez et enregistrez send_vio_jdczp_to126() sur 11.71.253.66, effacez les données de la table d'historique 126 (RM_VIO_JDCZP_AND_HIS) et insérez à distance les données locales dans la table d'historique 126 (RM_VIO_JDCZP_AND_HIS).

CREATE OR REPLACE PROCEDURE send_vio_jdczp_to126 AS
BEGIN
  dbms_utility.exec_ddl_statement@to_11_71_253_126('truncate table RM_VIO_JDCZP_AND_HIS');
  EXECUTE IMMEDIATE 'insert into RM_VIO_JDCZP_AND_HIS@to_11_71_253_126 select * from RM_VIO_JDCZP_AND_HIS';
  COMMIT;
END;

7.2. Créez une tâche sur 11.71.253.66, et la tâche exécutera send_vio_jdczp_to126() à 17h42 tous les jours.

créer un emploi

DECLARE
  job_num NUMBER;
BEGIN
  dbms_job.submit(job_num
                 ,'SEND_VIO_JDCZP_TO126;'
                 ,SYSDATE
                 ,'TRUNC(sysdate+1)+17.7/24'); --每天17:42执行
  COMMIT;
END;

8. Créez une sauvegarde et une tâche sur 11.71.253.126, et la tâche exécutera la sauvegarde tous les jours.

8.1. Créez et enregistrez SQL_TO_CSV() sur 11.71.253.126 et générez le résultat de la requête SQL dans un fichier .csv local.

CREATE OR REPLACE PROCEDURE sql_to_csv(p_query    IN VARCHAR2, -- 查询SQL
                                       p_dir      IN VARCHAR2, -- 导出的文件放置目录
                                       p_filename IN VARCHAR2 -- CSV名
                                       ) IS
  l_output       utl_file.file_type;
  l_thecursor    INTEGER DEFAULT dbms_sql.open_cursor;
  l_columnvalue  VARCHAR2(4000);
  l_status       INTEGER;
  l_colcnt       NUMBER := 0;
  l_separator    VARCHAR2(1);
  l_desctbl      dbms_sql.desc_tab;
  p_max_linesize NUMBER := 32000;
BEGIN
  --OPEN FILE
  l_output := utl_file.fopen(p_dir
                            ,p_filename
                            ,'W'
                            ,p_max_linesize);
  --DEFINE DATE FORMAT
  EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''';
  --OPEN CURSOR
  dbms_sql.parse(l_thecursor
                ,p_query
                ,dbms_sql.native);
  dbms_sql.describe_columns(l_thecursor
                           ,l_colcnt
                           ,l_desctbl);
  --DUMP TABLE COLUMN NAME
  FOR i IN 1 .. l_colcnt LOOP
    utl_file.put(l_output
                ,l_separator || '"' || l_desctbl(i).col_name || '"'); --输出表字段
    dbms_sql.define_column(l_thecursor
                          ,i
                          ,l_columnvalue
                          ,4000);
    l_separator := ',';
  END LOOP;
  utl_file.new_line(l_output); --输出表字段
  --EXECUTE THE QUERY STATEMENT
  l_status := dbms_sql.execute(l_thecursor);

  --DUMP TABLE COLUMN VALUE
  WHILE (dbms_sql.fetch_rows(l_thecursor) > 0) LOOP
    l_separator := '';
    FOR i IN 1 .. l_colcnt LOOP
      dbms_sql.column_value(l_thecursor
                           ,i
                           ,l_columnvalue);
      utl_file.put(l_output
                  ,l_separator || '"' ||
                   TRIM(both ' ' FROM REPLACE(l_columnvalue
                               ,'"'
                               ,'""')) || '"');
      l_separator := ',';
    END LOOP;
    utl_file.new_line(l_output);
  END LOOP;
  --CLOSE CURSOR
  dbms_sql.close_cursor(l_thecursor);
  --CLOSE FILE
  utl_file.fclose(l_output);
EXCEPTION
  WHEN OTHERS THEN
    RAISE;
END;

8.2. Créez et enregistrez sql_to_csv_vio_jdczp() sur 11.71.253.126, interrogez les données de la table d'historique local (RM_VIO_JDCZP_AND_HIS) et générez le résultat sous la forme d'un fichier .csv local.

CREATE OR REPLACE PROCEDURE sql_to_csv_vio_jdczp AS
  v_today VARCHAR2(50); --今天的日期文本
BEGIN
  SELECT to_char(SYSDATE
                ,'yyyymmdd')
    INTO v_today
    FROM dual;
  sql_to_csv('select * from RM_VIO_JDCZP_AND_HIS' -- 查询SQL
            ,'OUT_PATH' -- 自己的本地目录
            ,v_today || '-RM_VIO_JDCZP_AND_HIS.csv');
END;

8.3. Créez une tâche sur 11.71.253.126 et exécutez sql_to_csv_vio_jdczp() enregistré à 17h48 tous les jours

--创建job
DECLARE
  job_num NUMBER;
BEGIN
  dbms_job.submit(job_num
                 ,'SQL_TO_CSV_VIO_JDCZP;'
                 ,SYSDATE
                 ,'TRUNC(sysdate+1)+17.8/24'); --每天17:48执行
  COMMIT;
END;

8.4. Créez et enregistrez P_SEND_MAIL() sur 11.71.253.126 pour envoyer du courrier.

Enregistré P_SEND_MAIL(), blog de vue de code SQL :
https://blog.csdn.net/tttzzzqqq2018/article/details/132242517#_3

8.5. Créez et enregistrez SENT_VIO_JDCZP_MAIL() sur 11.71.253.126, et envoyez le fichier .csv généré chaque jour à la boîte aux lettres correspondante.

Enregistré SENT_VIO_JDCZP_MAIL(), le code SQL est le suivant :

CREATE OR REPLACE PROCEDURE sent_vio_jdczp_mail(v_mail IN VARCHAR2) AUTHID CURRENT_USER IS
  v_today     VARCHAR2(50); --今天的文本
  v_today2    VARCHAR2(50); --今天的文本2
  v_file_name VARCHAR2(500); --文件全名称
BEGIN
  SELECT to_char(SYSDATE ,'yyyymmdd') INTO v_today FROM dual;
  SELECT to_char(SYSDATE ,'yyyy-mm-dd') INTO v_today2 FROM dual;
  v_file_name:='E:\tzq\wf\report\'||v_today||'-RM_VIO_JDCZP_AND_HIS.csv';
  P_SEND_MAIL('【荆州市交管局】-集成平台-违法图片数据量统计('||v_today2||')',--邮件正文
              '【荆州市交管局】-集成平台-违法图片数据量统计('||v_today2||')',--邮件标题
              'tttzzzqqq2019@163.com',--发送邮箱
              v_mail,--接收邮箱
              'smtp.163.com',
              25,
              1,
              'tttzzzqqq2019@163.com',--发送邮箱的账号
              'xxxxxxx',--发送邮箱的密码
              v_file_name, --文件
              'base64');
END;

8.6. Créez une tâche sur 11.71.253.126 et exécutez SENT_VIO_JDCZP_MAIL() tous les jours à 17h54.

créer un emploi

DECLARE
  job_num NUMBER;
BEGIN
  dbms_job.submit(job_num
                 ,'SENT_VIO_JDCZP_MAIL(''[email protected]'');'
                 ,SYSDATE
                 ,'TRUNC(sysdate+1)+17.9/24'); --每天17:54执行
  COMMIT;
END;

Conseils de travail Oracle :

Modifiez l'intervalle de la tâche de travail : dbms_job.interval(job_id, time format)

BEGIN
  dbms_job.interval(24
                   ,'TRUNC(sysdate+1)+17.9/24'); --每天17:54执行
  COMMIT;
END;

Exécutez une tâche de travail immédiatement : dbms_job.run(job_id)

BEGIN
  dbms_job.run(24);
  COMMIT;
END;

8.7. Le fichier csv étant trop petit, la procédure stockée envoie une erreur. Par conséquent, la tâche de suppression utilise bat pour exécuter et générer automatiquement des fichiers html.

Bat s'exécute automatiquement pour générer des fichiers html, veuillez consulter cet article de blog : Oracle génère des résultats de requête SQL dans des fichiers Web HTML (étapes détaillées pour les enregistrements graphiques)

8.7.1. Supprimer les tâches de travail Oracle en deux étapes dans 8.3 et 8.6

Interrogez l'ID de travail selon la vue user_jobs, le champ de travail de user_jobs est l'ID de travail.
Supprimez les tâches de travail Oracle aux étapes 8.3 et 8.6, et supprimez-les en fonction de l'ID de travail.

BEGIN
  dbms_job.remove(23);
  COMMIT;
END;
BEGIN
  dbms_job.remove(24);
  COMMIT;
END;

8.7.2, supprimer la procédure stockée en deux étapes de 8.2 et 8.5

supprimer la procédure stockée

drop procedure SQL_TO_CSV_VIO_JDCZP;
drop procedure SENT_VIO_JDCZP_MAIL;

8.8. Créez et enregistrez sent_vio_jdczp_and_his_mail() sur 11.71.253.126, et envoyez le fichier .html généré chaque jour à la boîte aux lettres correspondante.

CREATE OR REPLACE PROCEDURE sent_vio_jdczp_and_his_mail(v_mail IN VARCHAR2)
  AUTHID CURRENT_USER IS
  v_today     VARCHAR2(50); --今天的文本
  v_today2    VARCHAR2(50); --今天的文本2
  v_file_name VARCHAR2(500); --文件全名称
BEGIN
  select to_char(sysdate,'yyyymmdd') into v_today from dual;
  select to_char(sysdate,'yyyy-mm-dd') into v_today2 from dual;
  v_file_name:='E:\tzq\wf\report\'||v_today||'-集成违法图片表数据量统计.html';
  dbms_output.put_line('v_file_name:'||v_file_name);
  P_SEND_MAIL('【荆州市交管局】-集成平台-集成违法图片表数据量统计('||v_today2||')',--邮件正文
              '【荆州市交管局】-集成平台-集成违法图片表数据量统计('||v_today2||')',--邮件标题
              'tttzzzqqq2019@163.com',--发送邮箱
              v_mail,--接收邮箱
              'smtp.163.com',
              25,
              1,
              'tttzzzqqq2019@163.com',--发送邮箱的账号
              'xxxxxxx',--发送邮箱的密码
              v_file_name, --文件
              'base64');
END;

8.9. Créez une tâche sur 11.71.253.126 et exécutez sent_vio_jdczp_and_his_mail() tous les jours à 17h48.

Exécutez la tâche planifiée à 17h48 tous les jours au 11.71.253.126 :

DECLARE
  job_num NUMBER;
BEGIN
  dbms_job.submit(job_num
                 ,'sent_vio_jdczp_and_his_mail(''[email protected]'');'
                 ,SYSDATE
                 ,'TRUNC(sysdate+1)+17.9/24'); --每天17:54执行
  COMMIT;
END;

9. Effectuer des statistiques d'utilisation de l'espace table sur 10.74.132.17

Statistiques d'utilisation de l'espace table intégrées

----RM_TABLESPACE_RATE
--10.74.132.17
--sql:
select a.tablespace_name,a.bytes/1024/1024 sum_mb,(a.bytes-b.bytes)/1024/1024 used_mb,b.bytes/1024/1024 free_mb,
round(((a.bytes-b.bytes)/a.bytes)*100,2) percent_used
from
(select tablespace_name,sum(bytes) bytes from dba_data_files@rm group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space@rm group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by a.bytes desc,((a.bytes-b.bytes)/a.bytes) desc;

10. Effectuer des statistiques d'utilisation de l'espace table sur 10.74.132.17 et 11.71.253.126

10.1. Sur tzq/[email protected]/tzq, 11.71.253.126, créez une table.


– Créer une table sur tzq/[email protected]/tzq,11.71.253.126 :

-- Create table
create table RM_TABLESPACE_RATE
(
  tablespace_name              VARCHAR2(100),
  sum_mb               VARCHAR2(100),
  used_mb              VARCHAR2(100),
  free_mb              VARCHAR2(100),
  percent_used              VARCHAR2(100)
)
tablespace TZQ
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

select * from RM_TABLESPACE_RATE t
order by to_number(sum_mb) desc;

10.2. Créez une tâche et enregistrez GET_AND_SEND_VIO_JDCZP(), exécutez-la à 17h36 tous les jours

– Stockez GET_AND_SEND_VIO_JDCZP avec ceci

DECLARE
  job_num NUMBER;
BEGIN
  dbms_job.submit(job_num
                 ,'GET_AND_SEND_VIO_JDCZP;'
                 ,SYSDATE
                 ,'TRUNC(sysdate+1)+17.6/24'); --每天17:36执行
  COMMIT;
END;

10.3. Sur tzq/[email protected]/tzq, 11.71.253.126, créez une table.

11.71.253.66 et 11.71.253.126

-- Create table
create table DEV_EQUIPMENT_ALARM
(
  cjsj   VARCHAR2(100),
  sbbh   VARCHAR2(100) not null,
  glbm   VARCHAR2(100) not null,
  sbmc   VARCHAR2(1000) not null,
  sblx   VARCHAR2(100) not null,
  splx   VARCHAR2(100),
  jd     VARCHAR2(100),
  wd     VARCHAR2(100),
  yjlx   VARCHAR2(1000) not null,
  yjsj   DATE not null,
  jqms   VARCHAR2(2000) not null,
  csbj   VARCHAR2(1) not null,
  bjcsbj VARCHAR2(1) not null
)
tablespace TZQ
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
drop table DEV_EQUIPMENT_ALARM purge;
create table DEV_EQUIPMENT_ALARM
(
  zd   VARCHAR2(200),
  sl   VARCHAR2(100) not null
)
tablespace TZQ
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
/

10.4. Créez et enregistrez sur 11.71.253.126.

----126

CREATE OR REPLACE PROCEDURE sent_rm_tablespace_rate_mail
(v_mail in varchar2)
AUTHID CURRENT_USER is
  v_today VARCHAR2(50);      --今天的文本
  v_today2 VARCHAR2(50);      --今天的文本2
  v_file_name VARCHAR2(500); --文件全名称
begin
  select to_char(sysdate,'yyyymmdd') into v_today from dual;
  select to_char(sysdate,'yyyy-mm-dd') into v_today2 from dual;
  v_file_name:='E:\tzq\wf\report\'||v_today||'-集成表空间使用率统计.html';
  dbms_output.put_line('v_file_name:'||v_file_name);
  P_SEND_MAIL('【荆州市交管局】-集成平台-集成违法图片表数据量统计('||v_today2||')',--邮件正文
              '【荆州市交管局】-集成平台-集成违法图片表数据量统计('||v_today2||')',--邮件标题
              'tttzzzqqq2019@163.com',--发送邮箱
              v_mail,--接收邮箱
              'smtp.163.com',
              25,
              1,
              'tttzzzqqq2019@163.com',--发送邮箱的账号
              'xxxxxxx',--发送邮箱的密码
              v_file_name, --文件
              'base64');
end;

10.4. Créez une tâche et enregistrez GET_AND_SEND_VIO_JDCZP(), exécutez-la à 17h54 tous les jours

DECLARE job_num number;
begin
  dbms_job.submit(job_num,'sent_rm_tablespace_rate_mail(''[email protected]'');',sysdate,'TRUNC(sysdate+1)+17.85/24');--每天17:54执行
  commit;
end;
/
call sent_rm_tablespace_rate_mail('[email protected]');

---立即执行一次
begin
dbms_job.run(26);
commit;
end;
/

10.5. Créez et enregistrez sent_dev_equipment_alarm_mail()

CREATE OR REPLACE PROCEDURE sent_dev_equipment_alarm_mail
(v_mail in varchar2)
AUTHID CURRENT_USER is
  v_today VARCHAR2(50);      --今天的文本
  v_today2 VARCHAR2(50);      --今天的文本2
  v_file_name VARCHAR2(500); --文件全名称
begin
  select to_char(sysdate,'yyyymmdd') into v_today from dual;
  select to_char(sysdate,'yyyy-mm-dd') into v_today2 from dual;
  v_file_name:='E:\tzq\wf\report\'||v_today||'-集成设备运行情况表.html';
  dbms_output.put_line('v_file_name:'||v_file_name);
  P_SEND_MAIL('【荆州市交管局】-集成平台-集成设备运行情况表('||v_today2||')',--邮件正文
              '【荆州市交管局】-集成平台-集成设备运行情况表('||v_today2||')',--邮件标题
              'tttzzzqqq2019@163.com',--发送邮箱
              v_mail,--接收邮箱
              'smtp.163.com',
              25,
              1,
              'tttzzzqqq2019@163.com',--发送邮箱的账号
              'xxxxxxx',--发送邮箱的密码
              v_file_name, --文件
              'base64');
end;

10.6. Créez une tâche et enregistrez sent_dev_equipment_alarm_mail(), et exécutez-la à 17h54 tous les jours

DECLARE job_num number;
begin
  dbms_job.submit(job_num,'sent_dev_equipment_alarm_mail(''[email protected]'');',sysdate,'TRUNC(sysdate+1)+17.95/24');--每天17:54执行
  commit;
end;
/
call sent_rm_tablespace_rate_mail('[email protected]');

call sent_dev_equipment_alarm_mail('[email protected]');

11. Créez et enregistrez GET_AND_SEND_VIO_JDCZP() sur ti/[email protected]/jzjjinf

ti/[email protected]/jzjjinf

create or replace procedure GET_AND_SEND_VIO_JDCZP
as
begin
droptable_ifexists('RM_VIO_JDCZP_AND_HIS');
execute immediate '
create table RM_VIO_JDCZP_AND_HIS as
select TO_CHAR(SYSDATE,''yyyymmdd-hh24miss'') RQ,''1_vio_jdczp_his'' bm,to_char(lrsj,''yyyymmdd'') sj,count(1) sl from vio_jdczp_his@rm t
group by to_char(lrsj,''yyyymmdd'')
union all
select TO_CHAR(SYSDATE,''yyyymmdd-hh24miss'') RQ,''2_vio_jdczp'' bm,to_char(lrsj,''yyyymmdd'') sj,count(1) sl from vio_jdczp@rm t
group by to_char(lrsj,''yyyymmdd'')
order by 2,3
';
dbms_utility.exec_ddl_statement@to66('truncate table RM_VIO_JDCZP_AND_HIS');
execute immediate 'insert into RM_VIO_JDCZP_AND_HIS@to66
select * from RM_VIO_JDCZP_AND_HIS
';
commit;

droptable_ifexists('RM_TABLESPACE_RATE');
execute immediate '
create table RM_TABLESPACE_RATE as
select a.tablespace_name,a.bytes/1024/1024 sum_mb,(a.bytes-b.bytes)/1024/1024 used_mb,b.bytes/1024/1024 free_mb,
round(((a.bytes-b.bytes)/a.bytes)*100,2) percent_used
from
(select tablespace_name,sum(bytes) bytes from dba_data_files@rm group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space@rm group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by a.bytes desc,((a.bytes-b.bytes)/a.bytes) desc
';
dbms_utility.exec_ddl_statement@to66('truncate table RM_TABLESPACE_RATE');
execute immediate 'insert into RM_TABLESPACE_RATE@to66
select * from RM_TABLESPACE_RATE order by to_number(sum_mb) desc
';
commit;

droptable_ifexists('DEV_EQUIPMENT_ALARM');
execute immediate '
create table DEV_EQUIPMENT_ALARM as
select ''卡口-一大队-无数据上传'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select t.kkbh from DEV_TOLLGATE@RM t where t.kkzt=''1'' and  t.glbm like ''421003%'') 
and jqms like ''%无数据上传%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''卡口-一大队-数据上传延迟'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select t.kkbh from DEV_TOLLGATE@RM t where t.kkzt=''1'' and  t.glbm like ''421003%'') 
and jqms like ''%数据上传延迟%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''卡口-二大队-无数据上传'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select t.kkbh from DEV_TOLLGATE@RM t where t.kkzt=''1'' and  t.glbm like ''42100201%'') 
and jqms like ''%无数据上传%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''卡口-二大队-数据上传延迟'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select t.kkbh from DEV_TOLLGATE@RM t where t.kkzt=''1'' and  t.glbm like ''42100201%'') 
and jqms like ''%数据上传延迟%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''卡口-三大队-无数据上传'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select t.kkbh from DEV_TOLLGATE@RM t where t.kkzt=''1'' and  t.glbm like ''42100201%'') 
and jqms like ''%无数据上传%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''卡口-三大队-数据上传延迟'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select t.kkbh from DEV_TOLLGATE@RM t where t.kkzt=''1'' and  t.glbm like ''42100201%'') 
and jqms like ''%数据上传延迟%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
UNION ALL
select ''执法-一大队-经纬度字符不合法'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''421003%'') 
and jqms like ''%经纬度字符不合法%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法-一大队-经纬度精度少于4位'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''421003%'') 
and jqms like ''%经纬度精度少于4位%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法-一大队-从未上传过数据'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''421003%'') 
and jqms like ''%从未上传过数据%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法-一大队-上传数据中断'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''421003%'') 
and jqms like ''%上传数据中断%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_二大队-经纬度字符不合法'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100201%'') 
and jqms like ''%经纬度字符不合法%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_二大队-经纬度精度少于4位'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100201%'') 
and jqms like ''%经纬度精度少于4位%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_二大队-从未上传过数据'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100201%'') 
and jqms like ''%从未上传过数据%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_二大队_上传数据中断'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100201%'') 
and jqms like ''%上传数据中断%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_三大队-经纬度字符不合法'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100202%'') 
and jqms like ''%经纬度字符不合法%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_三大队-经纬度精度少于4位'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100202%'') 
and jqms like ''%经纬度精度少于4位%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_三大队-同一经纬度设备超过2个'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100202%'') 
and jqms like ''%同一经纬度设备超过2个%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_三大队-从未上传过数据'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100202%'') 
and jqms like ''%从未上传过数据%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''执法_三大队_上传数据中断'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in (select sbbh from DEV_VIO_EQUIPMENT@RM where zt=''1'' and glbm like ''42100202%'') 
and jqms like ''%上传数据中断%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
UNION ALL
select ''一大队-视频设备-总量'' zd,count(1) sl from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''421003%''
union all
select ''一大队-摄像机-总量'' zd,count(1) from DEV_VGAT_POSITION_CAMERA@RM b
where b.dwzt=''1'' and b.dwxh in (
select a.dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''421003%'')
union all
select ''一大队-视频设备-设备预警-同一经纬度设备超过2个'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''421003%'') and jqms like ''%同一经纬度设备超过2个%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''一大队-视频设备-设备预警-视频离线'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''421003%'') and jqms like ''%视频离线%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''一大队-视频设备-互信互通-总量'' zd,count(1) sl from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''421003%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%'')
union all
select ''一大队-视频设备-互信互通-设备预警-同一经纬度设备超过2个'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and   t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
and   t.sblx=''03'' and t.jqms like ''%同一经纬度设备超过2个%''
and sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''421003%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%''))
union all
select ''一大队-视频设备-互信互通-设备预警-视频离线'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and   t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
and   t.sblx=''03'' and t.jqms like ''%视频离线%''
and sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''421003%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%''))
union all
select ''二大队-视频设备-总量'' zd,count(1) sl from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100201%''
union all
select ''二大队-摄像机-总量'' zd,count(1) sl from DEV_VGAT_POSITION_CAMERA@RM b
where b.dwzt=''1'' and b.dwxh in (
select a.dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100201%'')
union all
select ''二大队-视频设备-设备预警-同一经纬度设备超过2个'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100201%'') and jqms like ''%同一经纬度设备超过2个%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''二大队-视频设备-设备预警-视频离线'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100201%'') and jqms like ''%视频离线%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''二大队-视频设备-互信互通-总量'' zd,count(1) sl from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100201%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%'')
union all
select ''二大队-视频设备-互信互通-设备预警-同一经纬度设备超过2个'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and   t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
and   t.sblx=''03'' and t.jqms like ''%同一经纬度设备超过2个%''
and sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100201%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%''))
union all
select ''二大队-视频设备-互信互通-设备预警-视频离线'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and   t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
and   t.sblx=''03'' and t.jqms like ''%视频离线%''
and sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100201%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%''))
union all
select ''三大队-视频设备-总量'' zd,count(1) sl from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100202%''
union all
select ''三大队-摄像机-总量'' zd,count(1) sl from DEV_VGAT_POSITION_CAMERA@RM b
where b.dwzt=''1'' and b.dwxh in (
select a.dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100202%'')
union all
select ''三大队-视频设备-设备预警-同一经纬度设备超过2个'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100202%'') and jqms like ''%同一经纬度设备超过2个%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''三大队-视频设备-设备预警-视频离线'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100202%'') and jqms like ''%视频离线%''
and t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
union all
select ''三大队-视频设备-互信互通-总量'' zd,count(1) sl from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100202%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%'')
union all
select ''三大队-视频设备-互信互通-设备预警-同一经纬度设备超过2个'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and   t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
and   t.sblx=''03'' and t.jqms like ''%同一经纬度设备超过2个%''
and sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100202%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%''))
union all
select ''三大队-视频设备-互信互通-设备预警-视频离线'' zd,count(1) sl from DEV_EQUIPMENT_ALARM@RM t
where t.yjsj>=to_date(to_char(sysdate,''yyyymmdd'')||'' 00:00:00'',''yyyymmdd hh24:mi:ss'')
and   t.yjsj<=to_date(to_char(sysdate,''yyyymmdd'')||'' 23:59:59'',''yyyymmdd hh24:mi:ss'')
and   t.sblx=''03'' and t.jqms like ''%视频离线%''
and sbbh in ( select dwxh from DEV_VGAT_POSITION@RM a
where a.dwzt=''1'' and a.glbm like ''42100202%''
and (szdd like ''荆州市沙市区__-%'' or szdd like ''荆州市荆州区__-%'' or szdd like ''荆州市市辖区__-%''))

';
dbms_utility.exec_ddl_statement@to66('truncate table DEV_EQUIPMENT_ALARM');
execute immediate 'insert into DEV_EQUIPMENT_ALARM@to66
select * from DEV_EQUIPMENT_ALARM
';
commit;

end;

Jusqu'à présent, le schéma d'envoi automatique des rapports de statistiques de données Oracle, la démonstration est terminée ! S'il vous plaît laissez un message si vous avez des questions, merci!

Je suppose que tu aimes

Origine blog.csdn.net/tttzzzqqq2018/article/details/132247881
conseillé
Classement