`

oracle trigger 范了一个巨大的错误 递归了

阅读更多
CREATE OR REPLACE TRIGGER UPT_PARENTFUN
AFTER UPDATE
ON DAPS.UT_ROLEFUNC
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
   v_parentid varchar2(50);
   v_count number;
BEGIN
    if :new.isactive !=ld.isactive then    -- 如果修改了isactive
   
        if to_number(:new.isactive) = 1  then
        -- 如果修改功能为有权限,判断父菜单是否有权限,如果没有改为有
            select f.parentid into v_parentid from ut_funcitem f where f.id = :new.funcid;
 
                --if(v_count < 1) then
                    update Ut_Rolefunc r set r.isactive = 1
                    where r.roleid = :new.roleid and r.funcid = v_parentid ;
                    ----错误----
                --end if;
            end if;
     end if; 
END;
分享到:
评论

相关推荐

    Oracle Form自动生成序号

    在Oracle Forms中,一个常见的需求是为新添加的行分配一个唯一的序列号。这个序列号应该能够根据已有的最大行号递增,同时还需要支持用户对序列号进行修改的功能。一旦用户修改了某一行的序列号,该序号应该能够在下...

    ORACLE和SQL语法区别归纳

    SQL是一种用于管理和处理关系型数据库的标准语言,而Oracle则是一个具体的数据库管理系统,它支持SQL语法并扩展了一些特有的功能。 1. **SQL的通用性与Oracle的特异性** - SQL是一种标准,被大多数关系数据库系统...

    oracle函数大全中文api文档

    "Oracle函数大全中文API文档"是一个非常实用的资源,它提供了对Oracle数据库所有内置函数的详尽解释,帮助开发者和DBA快速理解和使用这些函数。 1. **日期与时间函数**: Oracle提供了处理日期和时间的大量函数,...

    ORACLE转DB2对照全解

    **注意:** Oracle提供了`CONNECT BY`语法来实现层次查询,而DB2则通过递归公共表表达式(CTE)来实现。 #### 九、打印输出信息 **Oracle:** ```sql DBMS_OUTPUT.PUT_LINE('Hello World'); ``` **DB2:** ```sql ...

    oracle触发器与存储过程高级编程

    1. **递归触发器**:在某些情况下,一个触发器可能会调用另一个触发器,形成递归链,需谨慎处理防止无限循环。 2. **游标( Cursors)**:在存储过程中,游标用于遍历查询结果集,进行逐行处理,是处理复杂数据操作...

    oracle的sql语句和语法

    - **GROUP BY**:根据一个或多个列对结果进行分组,如`SELECT column1, COUNT(*) FROM table GROUP BY column1`。 - **HAVING**:在分组后过滤结果,与WHERE类似但用于GROUP BY之后。 - **ORDER BY**:对结果进行...

    Oracle PL SQL语言基础

    - 函数(FUNCTION):返回一个特定值的子程序,可以被其他PL/SQL代码或SQL查询调用。 4. 游标: 游标允许逐行处理查询结果集,通常用于在循环中处理多行数据。 5. 异常处理: 使用EXCEPTION关键字来捕获和处理...

    Oracle PL-SQL语言初级教程

    一个基本的PL/SQL块结构如下: ```sql DECLARE -- 声明部分 variable_name datatype; BEGIN -- 执行部分 statement1; statement2; EXCEPTION -- 异常处理部分 WHEN error_type THEN exception_handler; END...

    Oracle触发器与存储过程高级编程(chm)

    在Oracle数据库中,触发器和PL/SQL存储过程是两个重要的编程元素,它们用于实现复杂的数据管理和业务逻辑。 **触发器(Triggers)** 触发器是一种数据库对象,它在特定的数据库事件(如INSERT、UPDATE或DELETE)...

    PLSQL.rar_plsql_trigger

    在本压缩包“PLSQL.rar_plsql_trigger”中,主要探讨的是PLSQL中的一个重要概念——触发器(Trigger)。 触发器是一种存储过程,它在数据库中预定义并关联到特定的表或视图,当特定的数据库操作(如INSERT、UPDATE...

    ORACLE 常用的SQL语法和数据对象

    6. **视图(View)**:虚拟表,基于一个或多个表的查询结果,提供简化查询或安全访问数据的方式。 7. **序列(Sequence)**:自动产生唯一的整数序列,常用于主键生成。 8. **存储过程(Stored Procedure)**:预...

    Oracle期末考试复习资料(护眼版)1

    - 用户是数据库中的一个实体,有自己的权限和表空间。 7. **表**: - `CREATE TABLE`用于创建新表,可以使用子查询或其他表结构作为模板。 - 定义约束(如`NOT NULL`,`UNIQUE`,`PRIMARY KEY`,`FOREIGN KEY`,...

    Oracle数据库中的级联查询、级联删除、级联更新操作教程

    以下是一个简单的级联查询示例: ```sql SELECT * FROM table START WITH selfid = id CONNECT BY PRIOR selfid = parentid; ``` 这里的`table`是包含子节点ID和父节点ID的表,`selfid`是当前节点的ID,`...

    变异表简介

    假设我们需要为 `registered_students` 表添加一个触发器,每当有新的学生注册了一个课程时,自动更新 `classes` 表中的 `current_students` 字段。在这种情况下,`classes` 表就成为了变异表,因为我们将通过DML...

    精通SQL--结构化查询语言详解

    1.3.1 第一代数据库 7 1.3.2 第二代数据库 7 1.3.3 新一代数据库技术的研究和发展 7 1.4 关系数据库 8 1.4.1 关系模型 8 1.4.2 codd十二法则 9 1.4.3 范式 10 1.5 sql语言基础 11 1.5.1 sql的历史 11 1.5.2...

    面试--DBA30问

    - **备份master系统表的原因**:master数据库是SQL Server启动时加载的第一个数据库,包含系统级的信息,如果master数据库损坏,则可能导致整个数据库服务器无法启动。 #### 3. TempDB的用途是什么?TempDB出现问题...

    SQL語法大全一覽表

    - 在一个查询中嵌套另一个查询,如`SELECT column FROM table WHERE column IN (SELECT column FROM another_table WHERE condition);` 8. **视图(VIEW)**: - 创建虚拟表,方便查询,如`CREATE VIEW view_name...

Global site tag (gtag.js) - Google Analytics