Oracle
SQL LOADER导入数据
用户授权表与权限回收
行列转置
SQLPLUS导出数据(SPOOL)
存储过程记录执行异常日志
查看对象创建时间
停止正在执行的DBMS_JOB
表死锁查询
查看正在执行的sql语句
数组,自定义类型
查看最后一次DML的时间
递归(CONNECT BY)
时间间隔(1h2m3s)
REGEXP_SUBSTR行变列
TRANSLATE函数
执行动态SQL
LISTAGG和WM_CONCAT函数列合并为行
表统计分析
表空间大小统计
收缩表段(shrink space)
集合类型
LIKE操作转义
分析函数(窗口函数)
高级分组 ROOLUP、CUBE、GROUPING SETS
SYS_CONTEXT()函数
进制转换
创建DBMS_JOB
执行超长的动态DDL语句
查询占用空间前100的数据表
MERGE 语句使用(UPSERT)
随机生成密码
Scheduler job
递归获取组织的全称
执行job和停止job
本站点使用 MrDoc 构建
-
+
首页
存储过程记录执行异常日志
# 存储过程记录执行日志 ```SQL --记录日志存储过程 CREATE OR REPLACE PROCEDURE pro_record_log(in_start_time IN DATE, in_end_time IN DATE, in_code IN VARCHAR2, in_message IN VARCHAR2) AS /*记录日志*/ v_owner VARCHAR2 (30); v_name VARCHAR2 (30); v_lineno NUMBER; v_type VARCHAR2 (30); BEGIN --返回是哪个对象调用了本存储过程记录日志 owa_util.who_called_me(v_owner,v_name,v_lineno,v_type); /*dbms_output.put_line(v_owner||'.'||v_name||' '||v_type); dbms_output.put_line(in_code||'**'||in_message);*/ INSERT INTO tbl_proc_log(proc_name,start_time,end_time,ERROR_CODE,error_message) VALUES (v_name,in_start_time,in_end_time,in_code,in_message||DBMS_UTILITY.format_error_backtrace()); COMMIT; END; --测试 CREATE OR REPLACE PROCEDURE pro_test AS v_start_time DATE := SYSDATE; BEGIN INSERT INTO uuid VALUES('333'); COMMIT; --记日志 pro_record_log(v_start_time,SYSDATE,Sqlcode,SUBSTR(SQLERRM, 1, 512)); COMMIT; EXCEPTION WHEN OTHERS THEN pro_record_log(v_start_time,SYSDATE,Sqlcode,SUBSTR(SQLERRM, 1, 512)); COMMIT; END; ``` ```sql BEGIN EXECUTE IMMEDIATE 'CREATE BITMAP INDEX IDX_FLOW_BTYPE ON FLOW(TYPE)'; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE || SQLERRM); ROLLBACK; END; ```
vleity
2025年7月14日 15:37
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码