函数

原创 2012年03月30日 17:09:24

函数的结构:
  function [schema.]function_name
   [(parameter [, ...])]             --参数列表
   return return_datatype            --返回数据类型
   [authid {definer | current_user}] --指定使用定义者权限还是调用者权限
   [deterministic]                   --系统为函数的返回值保留一个复制,优化器决定使用保留的复制还是重新执行。
   [parallel_enable n]               --在select调用函数时可以并行处理
   [prpellned]                       --函数的结果应该通过pile row命令多次返回
   [result_cache ...]                --指定函数的输入值和返回值都要保存在函数结果缓存中
  is
   [declaration statements]          --声明部分,可选。
  begin
   executable statements             --可执行部分,至少有一个return
  [exception
   exception handlers]               --异常处理句柄,可选
  end [function_name];

函数头:is以上部分。通常包括函数名,参数列表,返回数据类型,有关函数定义和行行为的修饰符。
函数体:is以下部分。通常包括声明部分(可选)、可执行部分、异常处理部分(可选)。在可执行部分至少包含一个return语句。

return语句:在函数的可执行部分必须包含一个return语句,当然也可以由多个,但函数只执行一个return语句。当第一个return语句执行之后,函数立即终止执行,并把控制权            交还给调用的pl/sql块。return语句决定了函数的返回值。
            函数头部的return指定了返回的数据类型,而可执行部分的return语句才是返回的真正值。
            函数体中return语句的返回值的数据类型必须和函数头中指定的返回数据类型相兼容。
            关于多个return语句:函数体中可以有多个return语句,但只有一个会被执行。如果不确定返回哪个值,可以使用变量,在函数的最后返回该变量

end标签:可以直接写 end;,但最好在end后写上函数的名字,这是好的习惯。

返回的数据类型:可以返回任何数据类型,但不能返回异常
函数的调用:过程可以作为一个独立的可执行语句被执行,但函数不可以,函数只能作为pl/sql语句的一部分被调用。
不带参数的函数:对于不带参数的函数,在调用时可以加括号(),也可以不加括号。

static函数与普通函数

原文:static函数与普通函数 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也 是静态存储方式。这两者在存储方式上并无...
  • u010832643
  • u010832643
  • 2013年09月10日 10:47
  • 2130

构造函数与成员函数的区别?

构造函数是一种特殊的方法 主要用来在创建对象时初始化对象即为对象成员变量赋初始值 总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同...
  • daocaorencrl
  • daocaorencrl
  • 2015年05月15日 10:53
  • 1948

主题:钩子函数简析及实例

钩子函数、回调函数、注册函数,挂钩子这些我们代码中经常涉及到的东西,是否已经困扰你很久了?它们究竟是怎么回事,究竟怎么用?下面我来为你一一解答。 什么是钩子函数? 钩子函数也叫回调函数,是...
  • sunstars2009918
  • sunstars2009918
  • 2014年09月17日 11:41
  • 4291

匿名函数(Lambda表达式)与箭头函数

“Lambda 表达式”(lambda expression)是匿名函数的别称。 在ES6中,允许使用箭头=>定义匿名函数。var f = v => v;上面的箭头函数等同于:var f = fun...
  • maomaolaoshi
  • maomaolaoshi
  • 2017年10月26日 16:57
  • 274

为什么构造函数不能够使虚函数

虚函数可谓是C++与其它的面向对象语言最大的区别了。虚函数的存在使为了多态,Java当然也有多态。不过实现方式并不是通过虚函数,我们这里就不做介绍了。         虚函数的作用主要是为了继承的时...
  • helinlin007
  • helinlin007
  • 2016年05月30日 21:46
  • 6828

深度学习(1)-深度学习中的核函数(激活函数)

1.核函数的作用与损失函数的设计核函数(kernel method,kernel trick)是机器学习中一种重要的方法。一般定义是将原始表达转换到一个隐式特征空间去,该空间具有更好的特征可分性质。 ...
  • Kevin_cc98
  • Kevin_cc98
  • 2017年12月10日 15:36
  • 214

指针函数与函数指针--两个简单例子进行说明

一直都对两个概念有所混淆--指针函数与函数指针,下面我们通过两个例子来讲解一下 ------------------------------------------------------------...
  • u014131641
  • u014131641
  • 2016年04月09日 14:44
  • 2975

C++中虚函数不能是inline函数的原因

在C++中,inline关键字和virtual关键字分别用来定义c++中的内联函数和虚函数,他们在各自的场合都有其各自的应用,下面将简单介绍他们各自的功能,然后在说明为什么一个函数不能同时是虚函数和内...
  • flydreamforever
  • flydreamforever
  • 2017年03月11日 22:06
  • 761

C 函数声明, 函数原型, 函数定义

函数声明的发展1 隐式函数声明 implicit function declaration main 函数和 printf 函数返回值类型为 int, 若不声明, 编译器默认函数返回值为 int 类型...
  • why19911024
  • why19911024
  • 2016年11月04日 12:22
  • 1866

构造函数及析构函数与虚函数的关系

我们都知道构造函数不能为虚函数,而基类的析构函数一般都要定义为虚函数。今天重新复习了一下,特在此记载,以便查找。构造函数不能为虚函数主要有以下两点1、必要性分析: 当定义派生类对象时,它会主动依次调...
  • linpengbin
  • linpengbin
  • 2016年03月05日 20:38
  • 843
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数
举报原因:
原因补充:

(最多只允许输入30个字)