oracle存储过程代码日志记录

prompt 创建函数 f_getprocname
CREATE
OR
REPLACE
FUNCTION f_getprocname RETURN
VARCHAR2
--获取函数或者存储过程自身的名称及调用者
IS
l_owner VARCHAR2(30);
l_name VARCHAR2(30);
l_lineno NUMBER;
l_type VARCHAR2(30);
BEGIN
OWA_UTIL.who_called_me(l_owner, l_name, l_lineno, l_type);
RETURN l_owner ||
‘.‘
|| l_name;
END;
/

prompt 正执行
创建表 T_PROC_LOGS
declare
????v_count number
:=
0;
????v_tb_name varchar2(1000)
:=
‘T_PROC_LOGS‘;
begin
????SELECT
count(*)
INTO v_count FROM USER_OBJECTS WHERE
OBJECT_NAME
=
UPPER(v_tb_name);
????if v_count >
0
then
????????execute
immediate
‘drop table ‘
||
UPPER(v_tb_name);
????end
if;
end;
/
create
table T_PROC_LOGS
(
LOG_ID NUMBER(10)
default
0
not
null,
PROC_MC VARCHAR2(100)
default
‘ ‘
not
null,
TITLE VARCHAR2(4000)
default
‘ ‘
not
null,
CONTENT VARCHAR2(4000)
default
‘ ‘
not
null,
LOG_TYPE VARCHAR2(10)
default
‘ ‘
not
null,
LOG_TIME DATE
);

prompt 正执行
创建序列 seq_log_id
declare
????v_count number;
????v_sequence_name varchar2(1000)
:=
‘seq_log_id‘;
begin
select
count(*)
into v_count from user_sequences a where a.sequence_name =
upper(v_sequence_name);
if
(v_count =
0)
then
execute
immediate
‘create sequence ‘
|| v_sequence_name ||
‘ increment by 1 start with 1‘
||
‘ maxvalue 2100000000 minvalue 1‘
||
‘ cycle nocache noorder‘;
end
if;
end;
/

?

?

?

?

?

?

?

时间: 2024-11-06 03:45:10

oracle存储过程代码日志记录的相关文章

oracle使用存储过程实现日志记录.sql

--这段sql语句是用来实现oracle后台记录操作日志的,代替或者补充应用系统的操作日志. --1.对应的日志记录表-------------------------------------------------------------------create table TEST(  T_ID   NUMBER(4),  T_NAME VARCHAR2(20),  T_AGE  NUMBER(2),  T_SEX  CHAR(1));----------------------对应的日志记

oracle 存储过程最好的记录错误方式

当你的应用有调用存储过程,而节点有几十个或者上百个,找错是不是一个很麻烦的事情,这个时候,我建议写到数据库中,下面是我做的一个demo. 1. 建立错误日志记录表 drop table PUB_PROC_ERR_LOG purge; create table PUB_PROC_ERR_LOG ( LOG_ID      NUMBER, MODULE_NAME VARCHAR2(100), PROC_NAME   VARCHAR2(100), ERR_TIME    DATE, SQL_CODE

mybatis springmvc调用oracle存储过程,返回记录集

参考: http://bbs.csdn.net/topics/390866155 辅助参考: http://www.2cto.com/kf/201307/226848.html http://blog.csdn.net/grhlove123/article/details/7549290 在smm中,这样的controller编写方式是不一样的: 存储过程: create or replace procedure pro_getchart(chart_cur out sys_refcursor)

用户操作拦截并作日志记录--自定义注解+AOP拦截

作为运营除了处理系统生产问题,还要处理大量的用户上报事件,这部分工作占用了大量的人力.所有考虑把一部分事件查询处理做成一个自助平台,让用户自行核查处理.于是就有了用户自助系统.考虑到如何计量这个工具平台具体的实现价值,需要做用户操作统计才能给出可信服的数据. 以上就是本文的背景.自助系统的架构就是传统的springmvc+spinrg+mybatis+oracle.想到日志记录首先想到的就是AOP拦截处理.网上相关的技术贴很多.简单的小项目遇到的问题一般度娘都能给解决了~\(≧▽≦)/~ 自定义

C#调用 Oracle 存储过程样例代码

-- 建表CREATE TABLE sale_report (     sale_date DATE NOT NULL ,     sale_item VARCHAR(2) NOT NULL ,      sale_money DECIMAL(10,2) NOT NULL,      PRIMARY KEY(sale_date, sale_item)); -- 測试数据DECLAREv_begin_day DATE;v_end_day DATE;BEGIN v_begin_day := TO_D

java代码调用oracle存储过程

一.简介 与调用mysql存储过程类型过程都是如下 1.创建连接 Connection conn = DriverManager.getConnection(url, user, password); 2.创建CallableStatement CallableStatement statement = conn.prepareCall(sql); 3.设置参数 statement.setInt(1, id); statement.registerOutParameter(2, Types.VA

项目中oracle存储过程记录——常用语法备忘

项目中oracle存储过程记录--常用语法备忘 项目中需要写一个oracle存储过程,需求是收集一个复杂查询的内容(涉及到多张表),然后把符合条件的记录插入到目标表中.其中原表之一的日期字段是timestamp类型,目标表的字段是varchar2类型: 其中一些内容很常用,所以做下记录,供查找. 1.存储过程的格式 oracle存储过程和函数都可以实现,一般没有返回值,则采用存储过程,函数比sqlserver的功能强大.oracle变量定义最好加上前缀如V_,查询条件中变量名称和字段名称不能重复

Oracle定时任务执行存储过程备份日志记录表

写在前面 需求 备份系统日志表T_S_LOG, 按照操作时间字段OPERATETIME, 将每天的日志增量备份到另一张表. 思路 1.创建一张数据结构完全相同的表T_S_LOG_BAK作为备份表 2.查出T_S_LOG中需要备份的数据 3.将数据赋给游标变量 4.遍历游标将数据逐条插入T_S_LOG_BAK 5.创建无参存储过程将游标的这部分操作作为存储过程主体执行 6.创建定时任务定时执行该存储过程 操作环境 Oracle11g T_S_LOG日志表(部分数据) 1 -- ----------

利用oracle存储过程生成树代码

利用oracle存储过程生成树编码 需求 字段 描述 备注 ID 主键,32位UUID TYPE_CODE 编码 如:1-01-003 PARENT_ID 父节点ID,32位UUID SORT_NUM 排序编号 正整数 假设顶级节点的TYPE_CODE为字符1,写存储过程把表中所有的节点TYPE_CODE生成好: 二级节点前面补一个龄,三级补两个零,依次类推: 实现关键点 n  不知道系统有多少级,需要递归调用 通过递归调用自身: n  如果动态在TYPE_CODE前面填充0:通过计算'-'的个