> 데이터 베이스 > MySQL 튜토리얼 > Oracle过程和函数的区别

Oracle过程和函数的区别

WBOY
풀어 주다: 2016-06-07 17:00:04
원래의
1047명이 탐색했습니다.

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

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

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

  • pay_involume(invoice_nbr,30,due_date); 
  • 函数以合法的表达式的方式调用:

  • 创建过程的语法如下:

  • CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name  
  • [parameter_lister]  
  • {AS|IS}  
  • declaration_section  
  • BEGIN  
  • executable_section  
  • [EXCEPTION  
  • exception_section]  
  • END [procedure_name]   
  • 每个参数的语法如下:

  • 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语句。

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

  • linux

  • 관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    최신 이슈
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿