Schéma d'envoi automatique du rapport de statistiques de données Oracle
- serveur de démonstration
- Sens du 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
- 2. Créez un lien de base de données sur 10.74.132.17/jzjjinf
- 3. Créez et enregistrez des tables sur 11.71.253.66/tzq
- 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
- 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.
- 4.2. Créez une tâche et exécutez GET_AND_SEND_VIO_JDCZP() régulièrement à 17h36 tous les jours.
- 5. Connectez mstsc à 11.71.253.126 à partir de 11.71.253.66 sur le bureau à distance
- Six, créer une table sur 11.71.253.126
- 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).
- 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.
- 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.
- 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.
- 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
- 8.4. Créez et enregistrez P_SEND_MAIL() sur 11.71.253.126 pour envoyer du courrier.
- 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.
- 8.6. Créez une tâche sur 11.71.253.126 et exécutez SENT_VIO_JDCZP_MAIL() tous les jours à 17h54.
- 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.
- 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.
- 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.
- 9. Effectuer des statistiques d'utilisation de l'espace table sur 10.74.132.17
- 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.
- 10.2. Créez une tâche et enregistrez GET_AND_SEND_VIO_JDCZP(), exécutez-la à 17h36 tous les jours
- 10.3. Sur tzq/[email protected]/tzq, 11.71.253.126, créez une table.
- 10.4. Créez et enregistrez sur 11.71.253.126.
- 10.4. Créez une tâche et enregistrez GET_AND_SEND_VIO_JDCZP(), exécutez-la à 17h54 tous les jours
- 10.5. Créez et enregistrez sent_dev_equipment_alarm_mail()
- 10.6. Créez une tâche et enregistrez sent_dev_equipment_alarm_mail(), et exécutez-la à 17h54 tous les jours
- 11. Créez et enregistrez GET_AND_SEND_VIO_JDCZP() sur ti/[email protected]/jzjjinf
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!