Oracle 编程

时间:2023-03-08 23:05:27
Oracle 编程

编程:储存过程,自定义函数,触发器,包。

储存过程

在命令窗口用exec调

作用:存储在数据库中用于完成某个功能的程序

创建在 procedure里

Oracle 编程

create or replace procedure 存储过程名称(参数1 in 数据类型, 参数2 out 数据类型, 参数3 in out 数据类型) is 定义变量 begin 代码 end 存储过程名称;

命令窗口输出:set serveroutput on 默认是off,关闭输出,只对当前窗口有效

dbms_output.put_line('输出内容');

Oracle 编程  Oracle 编程

变量定义:变量名 数据类型(长度);

变量赋值:变量名 数据类型(长度) := 值或表达式;

      变量名 := 值或表达式;

Oracle 编程    Oracle 编程

还能修改数据,修改必须提交数据库 。 commit 提交数据库。

Oracle 编程  Oracle 编程 Oracle 编程

自定义函数

作用:用户自定义的具有返回值的程序

必须有返回值,不能执行DML语句,只能执行DQL语句。查询的时候用,不允许对数据修改

创建 在functions里

Oracle 编程

Oracle 编程    Oracle 编程

select 字段或函数,... into 变量,... from 表     把查询的单行数据赋给变量

Oracle 编程  Oracle 编程

触发器

DML触发器,修改触发

DDL触发器,查询触发

复合触发器

系统事件触发器

触发方式:

instead of 触发器 ,常用于视图

before 前触发after 后触发

DML触发器:

对表的insert,update,delete动作触发

:old 动作执行前的行数据

:new 动作执行后的行数据

创建

Oracle 编程

Oracle 编程

创建完后,写编程

Oracle 编程

修改的记录就出现在了log表中

Oracle 编程

保存和管理存储过程和自定义函数

可以把储存过程和自定义函数放在里面

创建 在packages里

Oracle 编程

包的部分

(包头)公开包体内的程序名的定义,提供给外部进行访问。

包体,定义公共变量、存储过程、自定义函数,外部不能直接访问。

Oracle 编程

可以直接把操作过程和内置函数放在包体里,便于管理

Oracle 编程

在包头调用,在包体里是不开放的。

Oracle 编程

从包里调用时 使用包名.程序名

Oracle 编程