码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 编程

时间:2016-12-19 07:51:28      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:log   提交数据   赋值   定义函数   代码   replace   output   rac   默认   

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

储存过程 

在命令窗口用exec调

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

创建在 procedure里

技术分享

 

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

 

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

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

技术分享  技术分享

 

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

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

      变量名 := 值或表达式;

技术分享    技术分享

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

技术分享  技术分享 技术分享

 

 

自定义函数

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

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

创建 在functions里

 技术分享

 

技术分享    技术分享

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

技术分享  技术分享

触发器

DML触发器,修改触发

DDL触发器,查询触发

复合触发器

系统事件触发器

触发方式:

instead of 触发器 ,常用于视图

before 前触发after 后触发

DML触发器:

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

 :old 动作执行前的行数据

 :new 动作执行后的行数据

创建

技术分享

技术分享

创建完后,写编程

技术分享

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

技术分享

 包

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

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

创建 在packages里

 技术分享

包的部分

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

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

技术分享

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

技术分享

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

技术分享

 

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

 技术分享

 

Oracle 编程

标签:log   提交数据   赋值   定义函数   代码   replace   output   rac   默认   

原文地址:http://www.cnblogs.com/hq233/p/6195914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!