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 Forms中,一个常见的需求是为新添加的行分配一个唯一的序列号。这个序列号应该能够根据已有的最大行号递增,同时还需要支持用户对序列号进行修改的功能。一旦用户修改了某一行的序列号,该序号应该能够在下...
SQL是一种用于管理和处理关系型数据库的标准语言,而Oracle则是一个具体的数据库管理系统,它支持SQL语法并扩展了一些特有的功能。 1. **SQL的通用性与Oracle的特异性** - SQL是一种标准,被大多数关系数据库系统...
"Oracle函数大全中文API文档"是一个非常实用的资源,它提供了对Oracle数据库所有内置函数的详尽解释,帮助开发者和DBA快速理解和使用这些函数。 1. **日期与时间函数**: Oracle提供了处理日期和时间的大量函数,...
**注意:** Oracle提供了`CONNECT BY`语法来实现层次查询,而DB2则通过递归公共表表达式(CTE)来实现。 #### 九、打印输出信息 **Oracle:** ```sql DBMS_OUTPUT.PUT_LINE('Hello World'); ``` **DB2:** ```sql ...
1. **递归触发器**:在某些情况下,一个触发器可能会调用另一个触发器,形成递归链,需谨慎处理防止无限循环。 2. **游标( Cursors)**:在存储过程中,游标用于遍历查询结果集,进行逐行处理,是处理复杂数据操作...
- **GROUP BY**:根据一个或多个列对结果进行分组,如`SELECT column1, COUNT(*) FROM table GROUP BY column1`。 - **HAVING**:在分组后过滤结果,与WHERE类似但用于GROUP BY之后。 - **ORDER BY**:对结果进行...
- 函数(FUNCTION):返回一个特定值的子程序,可以被其他PL/SQL代码或SQL查询调用。 4. 游标: 游标允许逐行处理查询结果集,通常用于在循环中处理多行数据。 5. 异常处理: 使用EXCEPTION关键字来捕获和处理...
一个基本的PL/SQL块结构如下: ```sql DECLARE -- 声明部分 variable_name datatype; BEGIN -- 执行部分 statement1; statement2; EXCEPTION -- 异常处理部分 WHEN error_type THEN exception_handler; END...
在Oracle数据库中,触发器和PL/SQL存储过程是两个重要的编程元素,它们用于实现复杂的数据管理和业务逻辑。 **触发器(Triggers)** 触发器是一种数据库对象,它在特定的数据库事件(如INSERT、UPDATE或DELETE)...
在本压缩包“PLSQL.rar_plsql_trigger”中,主要探讨的是PLSQL中的一个重要概念——触发器(Trigger)。 触发器是一种存储过程,它在数据库中预定义并关联到特定的表或视图,当特定的数据库操作(如INSERT、UPDATE...
6. **视图(View)**:虚拟表,基于一个或多个表的查询结果,提供简化查询或安全访问数据的方式。 7. **序列(Sequence)**:自动产生唯一的整数序列,常用于主键生成。 8. **存储过程(Stored Procedure)**:预...
- 用户是数据库中的一个实体,有自己的权限和表空间。 7. **表**: - `CREATE TABLE`用于创建新表,可以使用子查询或其他表结构作为模板。 - 定义约束(如`NOT NULL`,`UNIQUE`,`PRIMARY KEY`,`FOREIGN KEY`,...
以下是一个简单的级联查询示例: ```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...
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...
- **备份master系统表的原因**:master数据库是SQL Server启动时加载的第一个数据库,包含系统级的信息,如果master数据库损坏,则可能导致整个数据库服务器无法启动。 #### 3. TempDB的用途是什么?TempDB出现问题...
- 在一个查询中嵌套另一个查询,如`SELECT column FROM table WHERE column IN (SELECT column FROM another_table WHERE condition);` 8. **视图(VIEW)**: - 创建虚拟表,方便查询,如`CREATE VIEW view_name...