当前位置:  数据库>oracle

Oracle数据库中的函数,包和触发器

    来源: 互联网  发布时间:2017-05-27

    本文导语: 函数: 函数和存储过程非常的相似,唯一的不同就是函数具有返回值。而存储过程是没有返回值的。 函数的定义: 在pL/Sql developer工具左侧选择“Function”,右键新建就行。在弹出的框中输入函数名和返回值(返回值是必须的),...

函数:

函数和存储过程非常的相似,唯一的不同就是函数具有返回值。而存储过程是没有返回值的。

函数的定义:

在pL/Sql developer工具左侧选择“Function”,右键新建就行。在弹出的框中输入函数名和返回值(返回值是必须的),参数可以不写。定义如下,创建一个无参的函数:

/**
函数和存储过程非常的相似,唯一的不同的就是函数有返回值。
**/

create or replace function firstFun return varchar2
is
 
begin
  return 'Hello World';
end firstFun;

创建一个有参数的函数:

/**
  计算年薪是多少?
**/
create or replace function paramFun(salary number) return  number
is
 
begin
  return salary*12;
end paramFun;

在begin中的写法和存储过程一样。
函数的运行和存储过程的一样。

包的介绍:

包的组成:

包头(package):包头部分申明包内数据类型,常量,变量,游标,子程序和异常错误处理,这些元素为包的公有元素。

包主体(package body):包主体则是包定义部分的具体实现,它负责为包头中所声明子程序提供具体的实现,在包主体中还可以声明包的私有元素。

包头和包主体分开编译,并作为两个分开的对象分别存放在数据库字典中。

创建方法:

在开发工具PL/SQL Developer左侧有Packages右键点击新建。输入name值,创建包。会出现两个编辑框。一个是头一个是主体,区别图标不一样。

一个简单的入门案例:

/**
  这里是包头,主要是对数据的定义
**/
create or replace package firstPack is
  --定义一个变量
  v_bonus number:=200;
--定义一个函数
  function yearSalary(salary number) return number;
  --定义一个存储过程
  procedure myrop;
 
end firstPack;

 

/**
包主体:对申明的实现
计算年薪
年薪=月薪*12+奖金
**/
create or replace package body firstPack is

--对包头申明函数的实现
 function yearSalary(salary number) return number
  is
  begin
    return salary*12+v_bonus;--这里用到了前面申明的变量
  end;
--对存储过程的实现
 procedure myrop is
  begin
    --向学生表插入一条数据
          insert into tab_stu(stu_id,stu_name,stu_age,class_id) values(9,'凯南',21,2);
          commit;
  end;
end firstPack;

接下来请看第2页精彩内容:

 

相关阅读:

Oracle触发器的使用

Oracle触发器给表自身的字段重新赋值出现ORA-04091异常

Oracle创建触发器调用含参数存储过程

Oracle触发器查询统计本表

MySQL 触发器应用案例


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 系统变量函数介绍
  • Oracle 系统变量函数用法指南
  • Oracle中decode函数的用法
  • Oracle round()函数与trunc()函数区别介绍
  • oracle中lpad函数的用法详解
  • MySQL实现类似Oracle中的decode()函数的功能
  • Oracle函数substr(str1, pos, [len])
  • Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
  • SQL中Charindex和Oracle中对应的函数Instr对比
  • apache通过php的oci函数读取Oracle(字符集ZHS16GBK)时,显示乱码,如何解决?
  • Oracle Max函数使用中出现的问题
  • oracle合并列的函数wm_concat的使用详解
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • c#中oracle to_date函数用法举例
  • Oracle 函数用法之decode
  • Oracle过程与函数的区别分析
  • Oracle层次查询和with函数的使用示例
  • oracle的nvl函数的使用介绍
  • c#中oracle的to_date函数使用方法
  • Oracle中nul()函数
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,