度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1486|回复: 4
打印 上一主题 下一主题

[分享] 怎么查看oracle数据库的全局临时表是否正确的插入了数据

[复制链接]

348

主题

3572

帖子

9327

积分

论坛元老

Rank: 8Rank: 8

积分
9327
跳转到指定楼层
楼主
发表于 2020-7-20 23:32:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

今天遇到一个这样的问题,程序中有一个用来存储程序报错信息的临时表,就是每次当程序运行出错的时候,就会将相应的报错信息插入到临时表中,然后调用临时表中的数据在界面上显示给用户,然后今天出现的问题是,报错的界面出现了,但是没有正确的显示出报错信息,而是一片空白。在这个问题情景下,我就有了一个想知道数据是否正确插入到了临时表,但是我们都知道临时表是session级的,一个session是无法查看到另一个session临时表的数据的,所以,问题也就来了。本文就这个问题,提供下面的这种处理思路,如果你对oracle中的临时表还不是特别了解,可以先参考下博客中《oracle临时表用法小结》这篇文章。

1、创建临时表

为了方便后面写代码,先把临时表的结构表示出来,可以看下面的这段创建临时表的代码。

  1. -- 创建临时表
  2. CREATE GLOBAL TEMPORARY TABLE CMX_ERRORS_TMP
  3. (
  4.   SEQ_NUM          NUMBER,
  5.   ERROR_SOURCE     VARCHAR2(100),
  6.   ERROR_MESSAGE    VARCHAR2(4000),
  7.   CREATION_DATE    DATE DEFAULT SYSDATE NOT NULL,
  8.   CREATED_BY       NUMBER DEFAULT -1 NOT NULL,
  9.   DESCRIPTION      VARCHAR2(100)
  10. )
  11. ON COMMIT PRESERVE ROWS;
复制代码

2、创建一个和临时表结构一样的普通表

创建一个普通表,用来存储临时表中的记录。

-- 创建一个普通表CREATE TABLE cmx_tmp_bak AS SELECT * FROM cmx_errors_tmp WHERE 1 = 0;

3、在临时表上创建一个触发器

在临时表上面创建一个触发器,以实现每当往临时表中插入一条记录的时候,同时也将这条记录插入到前面建的那个普通表中。

-- 创建before insert触发器CREATE OR REPLACE TRIGGER cmx_errors_bak_trigger  BEFORE INSERT ON cmx_errors_tmp  FOR EACH ROWBEGIN  INSERT INTO cmx_tmp_bak    (seq_num, error_source, error_message, creation_date, created_by, description)  VALUES    (:new.seq_num, :new.error_source, :new.error_message, :new.creation_date, :new.created_by, :new.description,);END;

这里有个地方需要注意的是,oracle不允许在触发器中加commit和rollback。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
发表于 2020-7-21 13:57:18 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
板凳
发表于 2020-7-21 14:10:23 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
地板
发表于 2020-7-21 14:10:43 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
5#
发表于 2020-2-8 17:50:45 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-24 09:35 , Processed in 0.155505 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表