PGSQL日志存储过程

1、创建日志表

create table dwd_log_table
(error_id varchar(500),
data_dt varchar(500),
work_name varchar(500),
work_step varchar(500),
start_dt_time varchar(500),
end_dt_time varchar(500),
v_Sqlstate varchar(500),
v_Sqlcode  varchar(500),
v_errortext varchar(500),
tab_conuts varchar(500),
v_des varchar(500)
);
comment on table u_bk.dwd_log_table is '人口库日志表';
comment on column u_bk.dwd_log_table.error_id  is '出错编号';
comment on column u_bk.dwd_log_table.data_dt  is '出错数据日期';
comment on column u_bk.dwd_log_table.work_name  is '出错任务';
comment on column u_bk.dwd_log_table.work_step  is '任务步骤';
comment on column u_bk.dwd_log_table.start_dt_time  is '开始日期';
comment on column u_bk.dwd_log_table.end_dt_time  is '结束日期';
comment on column u_bk.dwd_log_table.v_Sqlstate  is 'sql执行';
comment on column u_bk.dwd_log_table.v_Sqlcode  is '错误信息';
comment on column u_bk.dwd_log_table.v_errortext  is '错误语句';
comment on column u_bk.dwd_log_table.tab_conuts  is '表记录数';
comment on column u_bk.dwd_log_table.v_des  is '备注';

2、创建日志存储过程

create function p_dwd_logs(v_function_name character varying, v_word_id character varying, v_work_step character varying, v_work_table character varying, v_tab_conuts character varying, v_begin_time timestamp without time zone, v_sql_code character varying, v_sql_status character varying, v_sql_log character varying, v_remark character varying) returns void
    language plpgsql
as
$$
declare

v_end_time timestamp ;
v_fun_time varchar;

Begin

v_end_time := now();
--v_fun_time:=extract(epoch FROM (v_end_time - v_begin_time))||'s';
v_fun_time:=date_part('second',(v_end_time-v_begin_time))||'s';

insert into dwd_log_tables
(
function_name,--存储过程名称
word_id,--步骤序号
work_step,--步骤描述
work_table,--目标表+操作类型
tab_conuts,--影响记录数
begin_time,--开始时间
end_time,--结束时间
fun_time,--执行用时(秒)
sql_code,--SQL执行腳本
sql_status,--执行状态
sql_log,--执行日志
remark--备注
)
Select
v_function_name,
v_word_id,
v_work_step,
v_work_table,
v_tab_conuts,
v_begin_time,
v_end_time,
v_fun_time,
v_sql_code,
v_sql_status,
v_sql_log,
v_remark;

Exception

When others Then

RAISE NOTICE '日志文件异常,没有插入数据!';

end;
$$;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PostgreSQL (简称 PostgreSQLPg) 是一个开源的对象关系型数据库管理系统 (RDBMS),它以其强大的扩展性、可移植性和对标准SQL的支持而闻名。关于SQL语法的变化,这里列举几个关键点: 1. SQL标准支持:PostgreSQL一直紧跟SQL标准,不断更新以支持新的功能和优化。比如,它从早期就开始支持窗口函数(Window Functions),这是SQL:2003引入的新特性。 2. JSON支持:PostgreSQL是最早将JSON数据类型内置到数据库中的系统之一,这使得处理复杂的数据结构变得更加简单。 3. 表达式函数增强:PostgreSQL提供了大量的内置函数和扩展函数,包括数学、日期时间处理、字符串操作等,这些函数随着版本更新会增加或改进。 4. 存储过程和触发器:PostgreSQL的PL/pgSQL存储过程语言不断发展,提供了更高级的功能和性能优化。 5. 性能改进:随着时间的推移,PostgreSQL针对查询优化、并发处理和硬件利用等方面的性能进行了持续改进。 6. 视图和材料化视图:PostgreSQL对视图的支持不断加强,包括材料化视图(Materialized Views)的引入,用于预先计算结果以提高查询效率。 7. 新的数据类型:新的数据类型如数组、hstore等被引入,以满足不同场景下的数据存储需求。 8. 非列存表(GiST)和全文搜索:PostgreSQL引入了自定义索引机制,支持非列存表和全文搜索功能。 如果你想知道具体某个版本或特定更新中的语法变化,可以查看PostgreSQL的官方文档或者查阅版本发布的变更日志(Change logs)。有关于使用中的问题或想知道某个特定语法点的改变,请告诉我,我会帮你解答相关问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值