1、存储过程
在dm中用户可以使用 DMSQL 程序语言创建存储过程。这些过程像普通的过程或函数一样,有输入、输出参数和返回值,它们与表和视图等数据库对 象一样被存储在数据库中,供用户随时调用。
写匿名块:
Declare (可选项)
Begin
Body;
Exception
End;
如何写存储过程。函数就是带返回值的存储过程。
案例:根据员工的编号找出员工所在部门?
CREATE PROCEDURE "SYSDBA"."AAA"("BH" IN INT)
AS
/*变量说明部分*/
dept INT;
BEGIN
/*执行体*/
select department_id into dept from emp where employee_id=BH;
print(dept);
END;
调用存储过程:
call aaa(1001);
2、触发器
分为:表级别,库级别,模式级别,视图。
库级别的触发器:
对数据库做drop 操作,记录操作时间,用户等。
案例:
员工表工资发生改动,记录改动前和改动后的值。
Create table TAB1(old_value int,new_value int);
create trigger "SYSDBA"."EEE"
before UPDATE of "SALARY"
on "SYSDBA"."EMP"
for each row
BEGIN
insert into TAB1 values(:old.salary,:new.salary);
END;
SQL> update emp set salary=1 where rownum<=1;