当前位置 > 主页 > 万和大讲堂 >


Oracle过程与函数的区别分析_南京Oracle认证培训分享

2016-09-30 14:12

  在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过程内部实际参数的值会传递给形式参数,形势参数的值可读也可写,过程结束后,形势参数的值将赋予实际参数。更多内容,请咨询南京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等众多厂商的授权培训、考试机构,欢迎广大有志于此行业发展的学员们加入。

最近开班 more>
  • 全栈开发
  • 前端基础班
  • 软件测试
  • Java大数据开发工程师
  • 云原生精英班
  • 开发课程基础班第四期
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第一期
  • Java Web UI Python
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • vip班
  • 考试计划
  • 脱产班
  • 脱产班
  • 脱产班
  • 双休班
  • 双休班
  • 双休班
  • 双休班
  • 业余班
  • 业余班
  • 10月16日
  • 9月23日
  • 9月2日
  • 9月30日
  • 8月26日
  • 10月8日
  • 9月23日
  • 9月16日
  • 9月9日
  • 随时开课
  • 9月21日
  • 10月17日
  • 9月18日
  • 9月2日
  • 11月2日
  • 10月26日
  • 9月7日
  • ——
  • 随时开课
  • 9月26日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入