0

0

ORA-04091和Compound Trigger(Oracle 11g)

php中文网

php中文网

发布时间:2016-06-07 17:34:06

|

1185人浏览过

|

来源于php中文网

原创

ora-04091和compound trigger(oracle 11g)

Linux公社

首页 → 数据库技术

背景:

阅读新闻

ora-04091和compound trigger(oracle 11g)

[日期:2013-12-14] 来源:Linux社区  作者:chncaesar [字体:]

Trigger

常见有两种:行(Row Trigger)和语句(Statement Trigger)

还有:Instead of Trigger和Event trigger。

例子1-Row Trigger:

CREATE OR REPLACE TRIGGER client AFTERINSERT ON tt1 FOR EACH row

BEGIN

 dbms_application_info.set_client_info(userenv('client_info')+1 );

END;

例子2-Statement Trigger

CREATE OR REPLACE TRIGGER client_1 AFTERINSERT ON tt1

BEGIN

 dbms_application_info.set_client_info(userenv('client_info')-1 );

END;

ORA-04091错误
Tom Kyte有一篇文章很好的解释了ORA-04091。

部分摘抄如下:

Suppose wehave a table that includes country currency combinations with a primarycurrency. The following is sample data:


CountryCurrency  Primary_Currency

US      USD      Y

US      USN      N

US      USS      N

We need toenforce the rule that at most one currency can be primary for a given country.We have a BEFORE UPDATE trigger on the above table for each row (usingautonomous transaction to avoid the mutating error) to check whether thecountry has any primary currency.

That was allI needed to read. I knew they had a serious bug on their hands when Iread—paraphrasing:

At most one currency can be primary (we have a constraint that crosses rows in the table).
We have a . . . trigger.
We are using an autonomous transaction to avoid the mutating table error.

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

下载

The trigger would have looked something like this:

 

SQL

  2    trigger currencies_trigger

  3    before update on currencies

  4    for each row

  5    declare

  6      PRAGMA AUTONOMOUS_TRANSACTION;

  7      l_cnt number;

  8    begin

  9        select count(*)

 10          into l_cnt

 11          from currencies

 12        where primary_currency='Y'

 13            and country = :new.country;

 14        if ( l_cnt

 15        then

 16            raise_application_error

 17            (-20000, 'only one allowed');

 18        end if;

 19    end;

 20    /

linux

  • 0
  • Oracle EBS R12 for Linux安装

    MySQL使用Federate引擎实现操作本地表映射远程操作表

    相关资讯       ORA-04091 

  • Oracle变异表触发器中ORA-04091错  (11/25/2013 10:26:56)
  • Oracle触发器给表自身的字段重新赋  (07/08/2013 13:57:10)
  • 图片资讯      

    本文评论   查看全部评论 (0)

    评论声明

    最新资讯

    本周热门

    Linux公社简介 - 广告服务 - 网站地图 - 帮助信息 - 联系我们
    本站(LinuxIDC)所刊载文章不代表同意其说法或描述,,仅为提供更多信息,也不构成任何建议。


    Copyright © 2006-2011 Linux公社 All rights reserved 浙ICP备06018118号

    相关专题

    更多
    PPT动态图表制作教程大全
    PPT动态图表制作教程大全

    本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

    13

    2026.01.07

    c++ Libcurl用法详解
    c++ Libcurl用法详解

    本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

    0

    2026.01.07

    c++ Libcurl用法大全
    c++ Libcurl用法大全

    本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

    0

    2026.01.07

    C++ vector用法汇总
    C++ vector用法汇总

    本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

    2

    2026.01.07

    C++ vector用法大全
    C++ vector用法大全

    本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

    0

    2026.01.07

    2026年漫蛙最新官网地址
    2026年漫蛙最新官网地址

    漫蛙官网访问入口为https://manwa.me,另提供manwa.cc、manwa.vip、manwa.site等多节点备用链接,支持跨设备同步、个性化阅读及HTTPS安全加密。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    60

    2026.01.07

    php做exe需要在什么样的环境
    php做exe需要在什么样的环境

    PHP无法真正编译为EXE,所谓打包实为将解释器、脚本及依赖库封装成自解压容器;主流方案是ExeOutputforPHP(商业、Windows)和PHPDesktop(开源、跨平台),需手动处理扩展依赖、路径适配与运行时限制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    1

    2026.01.07

    抖音抖币官方充值渠道汇总
    抖音抖币官方充值渠道汇总

    抖音官方抖币充值官网入口为https://pay.douyin.com/,具备直连支付系统、全端统一鉴权、HTTPS加密传输、多设备实时同步等特性,支持微信/支付宝/银联/话费等多种支付方式及严密账户安全机制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    5

    2026.01.07

    vscode创建html的教程
    vscode创建html的教程

    在 Visual Studio Code 中创建 HTML 文件的步骤如下:打开 VSCode并创建新文件。选择 "HTML" 模板。输入 HTML 代码。保存文件。(可选)预览文件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    3

    2026.01.07

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号