惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
J
Java Code Geeks
小众软件
小众软件
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
腾讯CDC
T
The Blog of Author Tim Ferriss
大猫的无限游戏
大猫的无限游戏
量子位
M
MIT News - Artificial intelligence
Last Week in AI
Last Week in AI
L
LangChain Blog

博客园 - 老狐狸

关于Update语句在不同数据库中的差别 F_GETTABLELID 正则表达式求值 - 老狐狸 - 博客园 创建层次查询 ultrawebgrid - 老狐狸 - 博客园 javascript - 老狐狸 - 博客园 case when用法和and 后加条件 exp/imp导出导入工具的使用 ASP.NET1.1中Grid自定义眉头 asp.net1.0 TreeView asp.net2.0 TreeView 创建记录、数组 关闭远程数据库连接 创建游标 创建新的序列 创建隐式游标 创建临时表 更新表(多表相关联)
出错存储过程
老狐狸 · 2006-10-24 · via 博客园 - 老狐狸

包头:
create or replace package ErrorLog is

  -- Author  : tuil
  -- Created : 2006-9-18 13:45:53
  -- Purpose :

  -- Public type declarations
  TYPE type_cur IS REF CURSOR;
  procedure InsertLogError(ErrorId     in varchar2,
                                       Application in varchar2,
                                       Host        in varchar2,
                                       Type        in varchar2,
                                       Source      in varchar2,
                                       Message     in varchar2,
                                       User        in varchar2,
                                       AllXml      in clob default null,
                                       StatusCode  number,
                                       TimeUtc     in date);
  procedure GetMasterErrorsXml(Application in varchar2,
                         PageIndex   in number,
                         PageSize    in number,
                         TotalCount  out number,
                         v_cur       out type_cur);
  procedure GetDetailErrorXml(Application in varchar2,
                              ErrorId     in varchar2,
                              v_cur       out type_cur);

end ErrorLog;
包体:
create or replace package body ErrorLog is

  procedure InsertLogError(ErrorId     in varchar2,
                       Application in varchar2,
                       Host        in varchar2,
                       Type        in varchar2,
                       Source      in varchar2,
                       Message     in varchar2,
                       User        in varchar2,
                       AllXml      in clob default null,
                       StatusCode  number,
                       TimeUtc     in date) is
  begin
    insert into s_errorlog
      (errorid,
       application,
       host,
       type,
       source,
       message,
       username,
       statuscode,
       timeutc,
       SEQUENCE,
       allxml)
    values
      (ErrorId,
       Application,
       Host,
       Type,
       Source,
       message,
       User,
       StatusCode,
       timeutc,
       SEQ_S_ERRORLOG.Nextval,
       AllXml);
  end InsertLogError;
  procedure GetMasterErrorsXml(Application in varchar2,
                               PageIndex   in number,
                               PageSize    in number,
                               TotalCount  out number,
                               v_cur       out type_cur) is
 
    v_sql   VARCHAR2(1000);
    v_count number;
    v_Plow  number;
    v_Phei  number;
  Begin
    -----------------------------------------取分页总数
    v_sql := 'select count(*) from s_errorlog t where t.Application=''' ||
             Application || '''';
    execute immediate v_sql
      into v_count;
    TotalCount := ceil(v_count / PageSize);
    --------------------------------------------显示任意页内容
    v_Plow := PageIndex * PageSize + 1;
    v_Phei := v_Plow + PageSize - 1;
    v_sql  := 'SELECT ErrorId,
    Application,
    Host,
    Type,
    Source,
    Message,
    username,
    StatusCode,
    TimeUtc
    FROM (SELECT ErrorId,
        Application,
        Host,
        Type,
        Source,
        Message,
        username,
        StatusCode,
        TimeUtc, row_number() over(ORDER BY Sequence DESC) rn
    FROM  s_errorlog a WHERE A.application = ''' || Application || ''')
    WHERE rn BETWEEN ' || v_Plow || ' AND ' || v_Phei || '';
    open v_cur for v_sql;
 
  end;

  procedure GetDetailErrorXml(Application in varchar2,
                              ErrorId     in varchar2,
                              v_cur       out type_cur) is
    v_sql VARCHAR2(1000);
  begin
    v_sql := 'select allxml from s_errorlog t where t.application = ''' ||
             Application || ''' and t.errorid =''' || ErrorId || '''';
    open v_cur for v_sql;
  end;
end ErrorLog;
表结构:
create table S_ERRORLOG
(
  ERRORID     VARCHAR2(50) not null,
  APPLICATION VARCHAR2(60),
  HOST        VARCHAR2(50),
  TYPE        VARCHAR2(100),
  SOURCE      VARCHAR2(60),
  MESSAGE     VARCHAR2(500),
  USERNAME    VARCHAR2(50),
  STATUSCODE  NUMBER,
  TIMEUTC     DATE,
  SEQUENCE    NUMBER,
  ALLXML      CLOB
)