当前位置:  数据库>oracle

Oracle过程与函数的区别分析

    来源: 互联网  发布时间:2014-10-04

    本文导语:  Oracle过程和函数相信大家都比较了解,下面就为您详细介绍Oracle过程和函数二者之间的区别,希望可以让您对Oracle过程和函数有更深的认识。 Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个...

Oracle过程和函数相信大家都比较了解,下面就为您详细介绍Oracle过程和函数二者之间的区别,希望可以让您对Oracle过程和函数有更深的认识。

Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式。Oracle过程是作为一个独立执行语句调用的:

pay_involume(invoice_nbr,30,due_date);

函数以合法的表达式的方式调用:

order_volumn:=open_orders(SYSDATE,30);

创建过程的语法如下:

CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name 
[parameter_lister] 
{AS|IS} 
declaration_section 
BEGIN 
executable_section 
[EXCEPTION 
exception_section] 
END [procedure_name] 

每个参数的语法如下:

paramter_name mode datatype [(:=|DEFAULT) value]

mode有三种形式:IN、OUT、INOUT。

IN表示在调用过程的时候,实际参数的取值被传递给该过程,形式参数被认为是只读的,当过程结束时,控制会返回控制环境,实际参数的值不会改变。

OUT在调用过程时实际参数的取值都将被忽略,在过程内部形式参数只能是被赋值,而不能从中读取数据,在过程结束后形式参数的内容将被赋予实际参数。

INOUT这种模式是IN和OUT的组合;在Oracle过程内部实际参数的值会传递给形式参数,形势参数的值可读也可写,过程结束后,形势参数的值将赋予实际参数。

创建函数的语法和过程的语法基本相同,唯一的区别在于函数有RETUREN子句

CREATE [ OR REPLACE] FINCTION [schema.]function_name 
[parameter_list] 
RETURN returning_datatype 
{AS|IS} 
declaration_section 
BEGIN 
executable_section 
[EXCEPTION] 
exception_section 
END [procedure_name]

在执行部分函数必须有哟个或多个return语句。

在创建函数中可以调用单行函数和组函数,例如:

CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER) 
RETURN NUMBER 
IS  
pi NUMBER=ACOS(-1); 
RadiansPerDegree NUMBER; 
 
BEGIN 
RadiansPerDegree=pi/180; 
RETURN(SIN(DegreesIn*RadiansPerDegree)); 
END 

    
 
 

您可能感兴趣的文章:

  • 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层次查询和with函数的使用示例
  • oracle的nvl函数的使用介绍
  • c#中oracle的to_date函数使用方法
  • Oracle中nul()函数
  • Oracle 9.2.0.1版函数编译一个小问题
  • oracle分页存储过程 oracle存储过程实例
  • shell调用oracle储存过程,怎么判断储存过程执行结果是否正确
  • Oracle存储过程调试简述
  • Oracle事务!使用游标提交过程
  • oracle sql执行过程(流程图)
  • oracle的存储过程实例讲解
  • Oracle存储过程如何返回一个结果集&如何获取
  • oracle 10g在红旗桌面版6.2的安装过程
  • redhat 9 下安装 oracle9i 过程中,要求指定java目录,到底是哪一个目录?
  • Oracle建表过程初学
  • 关于SHELL调用oracle存储过程出现的一个小问题
  •  
    本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle中关数据库对象的统计分析
  • 深入oracle特定信息排序的分析
  • oracle 数据库连接分析
  • Oracle移动数据文件到新分区步骤分析
  • 基于oracle小数点前零丢失的问题分析
  • Oracle date如何比较大小分析
  • Linux上建立第二个ORACLE实例分析
  • Oracle 数据库容灾复制解决方案分析Shar Plex
  • 计算机名称修改后Oracle不能正常启动问题分析及解决
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • linux as3 _weblogic8_oracle系统访问50万/日,常常ping不通,分析原因
  • Oracle数据库安全策略分析 (三)第1/2页
  • Oracle数据库安全策略分析(一)第1/2页
  • Oracle数据完整性嵌套事务调用分析研究
  • Oracle In和exists not in和not exists的比较分析
  • oracle修改SGA后无法启动问题分析及解决方法
  • Oracle案例:分析10053跟踪文件
  • Oracle数据库安全策略分析(二)
  • Oracle 9i中自动撤销管理的优点分析
  • Oracle数据库后台进程的功能分析
  • 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-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号