Esquema de envio automático do relatório de estatísticas de dados Oracle
- servidor de demonstração
- Direção do fluxo de dados: rm(10.74.132.107) -> 10.74.132.17 -> 11.71.253.66 -> 11.71.253.126 -> Web
- 1. 10.74.132.107, consultar dados
- 2. Crie um link de banco de dados em 10.74.132.17/jzjjinf
- 3. Crie e salve tabelas em 11.71.253.66/tzq
- 4. Em 10.74.132.17, crie um salvamento e um trabalho e execute o salvamento em intervalos regulares.
-
- 4.1. Criar e salvar
-
- 4.1.1. Crie droptable_ifexists() para excluir a tabela armazenada
- 4.1.2. Crie e salve GET_AND_SEND_VIO_JDCZP(), exclua a tabela de histórico local, reconstrua a tabela de histórico de acordo com os dados mais recentes e, ao mesmo tempo, limpe a tabela de histórico no servidor 66 e insira os dados da tabela de histórico local no 66 mesa remotamente.
- 4.2. Crie um trabalho e execute GET_AND_SEND_VIO_JDCZP() regularmente às 17:36 todos os dias.
- 5. Conecte mstsc a 11.71.253.126 de 11.71.253.66 na área de trabalho remota
- Seis, crie uma tabela em 11.71.253.126
- 7. Crie um salvamento e um trabalho em 11.71.253.66, e o trabalho executará o salvamento todos os dias.
-
- 7.1 Crie e salve send_vio_jdczp_to126() em 11.71.253.66, limpe os dados da tabela de histórico 126 (RM_VIO_JDCZP_AND_HIS) e insira remotamente os dados locais na tabela de histórico 126 (RM_VIO_JDCZP_AND_HIS).
- 7.2 Crie um job em 11.71.253.66, e o job executará send_vio_jdczp_to126() às 17:42 todos os dias.
- 8. Crie um salvamento e um trabalho em 11.71.253.126, e o trabalho executará o salvamento todos os dias.
-
- 8.1 Crie e salve SQL_TO_CSV() em 11.71.253.126 e envie o resultado da consulta SQL como um arquivo .csv local.
- 8.2 Crie e salve sql_to_csv_vio_jdczp() em 11.71.253.126, consulte os dados da tabela de histórico local (RM_VIO_JDCZP_AND_HIS) e gere o resultado como um arquivo .csv local.
- 8.3. Crie um trabalho em 11.71.253.126 e execute sql_to_csv_vio_jdczp() salvo às 17:48 todos os dias
- 8.4 Crie e salve P_SEND_MAIL() em 11.71.253.126 para enviar e-mail.
- 8.5 Crie e salve SENT_VIO_JDCZP_MAIL() em 11.71.253.126, e envie o arquivo .csv gerado diariamente para a caixa postal correspondente.
- 8.6 Crie um job em 11.71.253.126 e execute SENT_VIO_JDCZP_MAIL() todos os dias às 17h54.
- 8.7 Como o arquivo csv é muito pequeno, o procedimento armazenado envia um erro. Portanto, o trabalho de exclusão usa bat para executar e gerar arquivos html automaticamente.
- 8.8 Crie e salve sent_vio_jdczp_and_his_mail() em 11.71.253.126, e envie o arquivo .html gerado diariamente para a caixa postal correspondente.
- 8.9 Crie um job em 11.71.253.126 e execute sent_vio_jdczp_and_his_mail() todos os dias às 17h48.
- 9. Execute as estatísticas de uso do espaço de tabela em 10.74.132.17
- 10. Execute as estatísticas de uso do espaço de tabela em 10.74.132.17 e 11.71.253.126
-
- 10.1 Em tzq/[email protected]/tzq, 11.71.253.126, crie uma tabela.
- 10.2. Crie um trabalho e salve GET_AND_SEND_VIO_JDCZP(), execute às 17:36 todos os dias
- 10.3 Em tzq/[email protected]/tzq, 11.71.253.126, crie uma tabela.
- 10.4 Crie e salve em 11.71.253.126.
- 10.4. Crie um trabalho e salve GET_AND_SEND_VIO_JDCZP(), execute às 17:54 todos os dias
- 10.5. Crie e salve sent_dev_equipment_alarm_mail()
- 10.6. Crie um trabalho e salve sent_dev_equipment_alarm_mail() e execute-o às 17:54 todos os dias
- 11. Crie e salve GET_AND_SEND_VIO_JDCZP() em ti/[email protected]/jzjjinf
servidor de demonstração
envolve:
10.74.132.107
10.74.132.17
11.71.253.66
11.71.253.126
Direção do fluxo de dados: rm(10.74.132.107) -> 10.74.132.17 -> 11.71.253.66 -> 11.71.253.126 -> Web
Fluxo de dados:
rm(10.74.132.107) -> 10.74.132.17 -> 11.71.253.66 -> 11.71.253.126 -> Web
1. 10.74.132.107, consultar dados
Consulte o log de observação da tabela de violação integrada em 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. Crie um link de banco de dados em 10.74.132.17/jzjjinf
2.1. Criar link de dados rm e conectar-se a 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. Crie um link de dados para 66 e conecte-se a 66 (11.71.253.66/tzq)
create database link to66 connect to tzq identified by "1" using '11.71.253.66/tzq';
3. Crie e salve tabelas em 11.71.253.66/tzq
3.1. Criar tabela de histórico 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. Crie droptable_ifexists() para excluir a tabela armazenada
--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. Em 10.74.132.17, crie um salvamento e um trabalho e execute o salvamento em intervalos regulares.
4.1. Criar e salvar
4.1.1. Crie droptable_ifexists() para excluir a tabela armazenada
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. Crie e salve GET_AND_SEND_VIO_JDCZP(), exclua a tabela de histórico local, reconstrua a tabela de histórico de acordo com os dados mais recentes e, ao mesmo tempo, limpe a tabela de histórico no servidor 66 e insira os dados da tabela de histórico local no 66 mesa remotamente.
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. Crie um trabalho e execute GET_AND_SEND_VIO_JDCZP() regularmente às 17:36 todos os dias.
criar emprego
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. Conecte mstsc a 11.71.253.126 de 11.71.253.66 na área de trabalho remota
Use o comando mstsc remote connection desktop para se conectar a 11.71.253.126 em 11.71.253.66.
Seis, crie uma tabela em 11.71.253.126
Criar tabela de histórico (RM_VIO_JDCZP_AND_HIS)
Criar tabela em 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. Crie um salvamento e um trabalho em 11.71.253.66, e o trabalho executará o salvamento todos os dias.
7.1 Crie e salve send_vio_jdczp_to126() em 11.71.253.66, limpe os dados da tabela de histórico 126 (RM_VIO_JDCZP_AND_HIS) e insira remotamente os dados locais na tabela de histórico 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 Crie um job em 11.71.253.66, e o job executará send_vio_jdczp_to126() às 17:42 todos os dias.
criar emprego
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. Crie um salvamento e um trabalho em 11.71.253.126, e o trabalho executará o salvamento todos os dias.
8.1 Crie e salve SQL_TO_CSV() em 11.71.253.126 e envie o resultado da consulta SQL como um arquivo .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 Crie e salve sql_to_csv_vio_jdczp() em 11.71.253.126, consulte os dados da tabela de histórico local (RM_VIO_JDCZP_AND_HIS) e gere o resultado como um arquivo .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. Crie um trabalho em 11.71.253.126 e execute sql_to_csv_vio_jdczp() salvo às 17:48 todos os dias
--创建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 Crie e salve P_SEND_MAIL() em 11.71.253.126 para enviar e-mail.
Salvo P_SEND_MAIL (), blog de exibição de código SQL:
https://blog.csdn.net/tttzzzqqq2018/article/details/132242517#_3
8.5 Crie e salve SENT_VIO_JDCZP_MAIL() em 11.71.253.126, e envie o arquivo .csv gerado diariamente para a caixa postal correspondente.
SENT_VIO_JDCZP_MAIL() salvo, o código SQL é o seguinte:
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 Crie um job em 11.71.253.126 e execute SENT_VIO_JDCZP_MAIL() todos os dias às 17h54.
criar emprego
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;
Dicas de trabalho da Oracle:
Modifique o intervalo da tarefa do trabalho: dbms_job.interval(job_id, formato de hora)
BEGIN
dbms_job.interval(24
,'TRUNC(sysdate+1)+17.9/24'); --每天17:54执行
COMMIT;
END;
Execute uma tarefa de trabalho imediatamente: dbms_job.run(job_id)
BEGIN
dbms_job.run(24);
COMMIT;
END;
8.7 Como o arquivo csv é muito pequeno, o procedimento armazenado envia um erro. Portanto, o trabalho de exclusão usa bat para executar e gerar arquivos html automaticamente.
Bat é executado automaticamente para gerar arquivos html, consulte esta postagem no blog: Oracle gera resultados de consulta SQL em arquivos HTML da Web (etapas detalhadas para registros gráficos)
8.7.1. Exclua as tarefas de trabalho Oracle de duas etapas em 8.3 e 8.6
Consulte o id do trabalho de acordo com a visualização user_jobs, o campo de trabalho de user_jobs é o id do trabalho.
Exclua as tarefas de trabalho do Oracle nas etapas 8.3 e 8.6 e exclua-as de acordo com o ID do trabalho.
BEGIN
dbms_job.remove(23);
COMMIT;
END;
BEGIN
dbms_job.remove(24);
COMMIT;
END;
8.7.2, exclua o procedimento armazenado em duas etapas de 8.2 e 8.5
excluir procedimento armazenado
drop procedure SQL_TO_CSV_VIO_JDCZP;
drop procedure SENT_VIO_JDCZP_MAIL;
8.8 Crie e salve sent_vio_jdczp_and_his_mail() em 11.71.253.126, e envie o arquivo .html gerado diariamente para a caixa postal correspondente.
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 Crie um job em 11.71.253.126 e execute sent_vio_jdczp_and_his_mail() todos os dias às 17h48.
Execute a tarefa agendada às 17:48 todos os dias em 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. Execute as estatísticas de uso do espaço de tabela em 10.74.132.17
Estatísticas integradas de uso do espaço de tabela
----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. Execute as estatísticas de uso do espaço de tabela em 10.74.132.17 e 11.71.253.126
10.1 Em tzq/[email protected]/tzq, 11.71.253.126, crie uma tabela.
– Criar tabela em 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. Crie um trabalho e salve GET_AND_SEND_VIO_JDCZP(), execute às 17:36 todos os dias
– Armazene GET_AND_SEND_VIO_JDCZP com este
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 Em tzq/[email protected]/tzq, 11.71.253.126, crie uma tabela.
11.71.253.66 e 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 Crie e salve em 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. Crie um trabalho e salve GET_AND_SEND_VIO_JDCZP(), execute às 17:54 todos os dias
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. Crie e salve 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. Crie um trabalho e salve sent_dev_equipment_alarm_mail() e execute-o às 17:54 todos os dias
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. Crie e salve GET_AND_SEND_VIO_JDCZP() em 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;
Até agora, as estatísticas de dados do Oracle informam o esquema de envio automático, a demonstração está completa! Por favor, deixe uma mensagem se você tiver alguma dúvida, obrigado!