本人工作中涉及到的运行日志存储过程
2018-03-12 14:30
330 查看
create or replace package body R5_YXRZ_DATE_SHOW_PKG is -- 通过日志定义ID,得到当前日志数据的查询SQL function getYXRZQuerySql(l_rz_id number) return varchar2 is l_sql varchar2(4000); l_row_des varchar2(1000); l_len number; l_len_item number; l_item varchar2(4000) := ','; l_order varchar2(100); l_i number := 0; l_item_as varchar2(4000) := ','; l_len_item_as number; begin for i in (select * from r5_yxrz_defin_line l where l.rz_id = l_rz_id order by l.rzl_id) loop --判断是否有日期字段 if i.rzl_item = '日期' then l_row_des := l_row_des || '''' || i.rzl_item || ''' field_rq,'; l_item := l_item || ' field_rq ' || '"''' || i.rzl_item || '''",'; --判断是否有日志时间字段 elsif i.rzl_item = '日志时间' then l_row_des := l_row_des || '''' || i.rzl_item || ''' field_rq,'; l_item := l_item || ' field_rq ' || '"''' || i.rzl_item || '''",'; --如果有日期字段的话则将排序的字符串改成按照日期排序 if l_order is null then l_order := 'order by rq_order'; l_item_as := l_item_as || ' field_rq,field_rq rq_order,'; end if; else l_item_as := l_item_as || ' field_' || l_i || ','; l_row_des := l_row_des || '''' || i.rzl_item || ''' field_' || l_i || ','; l_item := l_item || ' field_' || l_i || ' "''' || i.rzl_item || '''",'; end if; l_i := l_i + 1; end loop; select length(l_row_des) into l_len from dual; select length(l_item) into l_len_item from dual; select length(l_item_as) into l_len_item_as from dual; l_row_des := substr(l_row_des, 1, l_len - 1); l_item := substr(l_item, 1, l_len_item - 1); l_item_as := substr(l_item_as, 1, l_len_item_as - 1); l_sql := 'select RE_ID, rz_id, group_line_id' || l_item || ' from (select RE_ID, rz_id, group_line_id' || l_item_as || ' from (select dl.RE_ID, dl.rz_id, dl.rzl_item, dl.group_line_id, dl.data_content from R5_YXRZ_data_v dl where rz_id = ' || l_rz_id || ') pivot(max(data_content) for rzl_item in(' || l_row_des || '))) ' || l_order; return l_sql; end; end R5_YXRZ_DATE_SHOW_PKG;
相关文章推荐
- 存储过程运行日志记录通用模块
- 1.4.10 收集存储过程运行日志
- 工作日志-授权,同义词,存储过程生成时间维表数据
- 存储过程运行超慢解决一例 ---续
- 存储过程中使用运行查出的SQL
- 本人写的数据库常用函数(存储过程中经常要用到)
- 代码调用存储过程超时,SQL Server Management Studio里运行很快
- 分享一个收缩数据库日志文件的存储过程
- MySQL运行存储过程出现1292错误
- 一个通用的分页存储过程实现-SqlServer(附上sql源码,一键执行即刻搭建运行环境)
- SQL Server 如何在运行时重编译存储过程
- hbase系统架构图以及各部分的功能作用,物理存储,HBase寻址机制,读写过程,Regin管理,Master工作机制
- 查看ORACLE中正在运行的存储过程 kill
- Mybatis源码分析之存储过程调用和运行流程
- SqlServer Bug:扩展存储过程一直运行出现等待类型PREEMPTIVE_OS_GETPROCADDRESS
- 取消正在运行的存储过程
- Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息
- 在sql server 中执行带参数的存储过程及计算运行时间
- 查找涉及到某张表的存储过程
- 错误提示是:发布 '%1' 的并发快照不可用,因为该快照尚未完全生成,或者日志读取器代理未运行,无法激活它。如果并发快照的生成过程中断,则必须重新启动用于该发布的快照代理,直到生成完整的快照