-- 查询日期是星期几?
Select to_char(sysdate,'day') from dual;
-- dbms_output.put_line(sqlcode||','||sqlerrm);
1.步骤一:创建一个序列,用于标识[存储过程,函数,触发器]执行先后顺序--步骤一:创建一个序列,用于标识[存储过程,函数,触发器]执行先后顺序CREATE SEQUENCE SEQ_PROGRAM_EXECUTE_LOGMINVALUE 1MAXVALUE 1000000000000START WITH 1INCREMENT BY 1CACHE 100CYCLEORDER;...
2、登陆数据库,执行如下语句,查看当前进行io操作的进程和模块名称:
SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,se.terminal,se.program,
se.MODULE,se.sql_address,st.event,st.p1text,si.physical_reads,si.block_changes
FROM v$session se,v$session_wait st,v$sess_io si,v$process pr
WHERE st.sid=se.sid AND st.sid=si.sid AND se.PADDR=pr.ADDR and se.username is not null AND se.sid>6
AND st.wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC
一般我们会将一些涉及到数据库的定时任务直接用存储过程搞定,省去了后端代码的开发、部署,简单、快速,但这种方式存在一个弊端——当存储过程执行出错了,我们无法感知。解决办法也简单,学代码那样去捕获异常、打印日志。
第一步,建日志表:
create table TBL_WLF_SYS_LOG
S_TIME VARCHAR2(32) not nul...
项目中存储过程运行时记录出错日志方法。
步骤一:创建一个序列,用于标识[存储过程,函数,触发器]执行先后顺序
CREATE SEQUENCE SEQ_PROGRAM_EXECUTE_LOG
MINVALUE 1
MAXVALUE 1000000000000
START WITH 1
INCREMENT BY 1
CACHE 100
CYCLE
ORDER;
-- 删除序列
--DROP SEQU...
1.1、查all_triggers表得到trigger_name
1.2、根据trigger_name查询出触发器详细信息
1.3、在
Oracle数据库中查询所有触发器、
存储过程、视图、表方法1:
本包用于记录存储过程里面的日志,将日志信息写入日志表(mylog)。可以记录日志时间、过程名称、过程里面记录日志的行数、参数值。如果在异常处理部分记录日志,还可以记录异常代码、异常原因、异常产生的行数。
本人使用开发环境为oracle10g
可以在 Oracle 存储过程中使用 DBMS_OUTPUT.PUT_LINE 函数来输出日志信息。将这些信息输出到数据库日志文件中,可以使用 Oracle 提供的日志记录机制,例如使用 UTL_FILE 包将日志信息写入到文件中。
下面是一个示例存储过程,其中使用了 DBMS_OUTPUT.PUT_LINE 函数来输出日志信息,并使用 UTL_FILE 包将日志信息写入到文件中:
CREATE OR REPLACE PROCEDURE my_procedure
log_file UTL_FILE.FILE_TYPE;
BEGIN
-- 打开日志文件
log_file := UTL_FILE.FOPEN('MY_DIR', 'my_log.log', 'w');
-- 输出日志信息到控制台和日志文件中
DBMS_OUTPUT.PUT_LINE('Starting my_procedure');
UTL_FILE.PUT_LINE(log_file, 'Starting my_procedure');
-- 执行存储过程的主体逻辑
-- 输出日志信息到控制台和日志文件中
DBMS_OUTPUT.PUT_LINE('Finished my_procedure');
UTL_FILE.PUT_LINE(log_file, 'Finished my_procedure');
-- 关闭日志文件
UTL_FILE.FCLOSE(log_file);
在上面的示例中,存储过程首先通过 UTL_FILE.FOPEN 函数打开了一个名为 'my_log.log' 的日志文件,然后通过 DBMS_OUTPUT.PUT_LINE 函数和 UTL_FILE.PUT_LINE 函数分别将日志信息输出到控制台和日志文件中,最后使用 UTL_FILE.FCLOSE 函数关闭日志文件。