我们知道存储过程的调用是一条 PL/SQL 语句。那么对于一些表达式我们用什么呢?这里函数的功能就会体现出来了。

  函数和过程在创建方式上有很多的类似地方,也是编译后放入内存中以供用户使用,只不过函数调用的时候是以表达式的形式。另外,函数必须有返回值,而过程是没有的。

创建函数:

  创建函数的语法如下:

CREATE [OR REPLACE] FUNCTION(<参数1>,[方式1]<数据类型1>,<参数2>,[方式2]<数据类型2>......)
RETURN<表达式>
IS|AS
PL/SQL 主体

  其中 RETURN 是声明返回值的类型,而在函数的主体部分必须有一个 RETURN。通常来说函数只有 in 类型的参数。

  例子:根据员工的职位查找当前职位员工的个数

create or replace function count_num(in_job in varchar2) return number is
out_num NUMBER;
begin
select count(*) into out_num from emp where job = in_job;
return(out_num);
end count_num;

调用函数

select count_num('CLERK') from dual; 

COUNT_NUM('CLERK')
------------------
3

  当然我们也可以在程序中调用:

DECLARE
count_number NUMBER;
BEGIN
count_number:=count_num('CLERK');
END

删除函数

  当一个函数不再使用的时候可以对其进行删除。

DROP FUNCTION count_num;

  当你发现一个函数已经存在,想要修改它只需要使用 CREATE OR REPLACE FUNCTION count_num; 并不是删除再重新创建。

orcale 之函数的更多相关文章

  1. Orcale日期函数to_date(),to_char()

    日期转换的两个函数分别是to_date()和to_char(),to_date() 作用将字符类型按一定格式转化为日期类型, to_char() 将日期转按一定格式换成字符类型 其中当时间需要精确的时 ...

  2. Orcale常用函数

    1.ascii 作用: 返回指定的字符对应的十进制数 select ascii('A') ,ascii('a'),ascii(' ') from dual; 2.chr 作用:给出整数,返回对应的字符 ...

  3. Orcale创建函数(function)

    Oraclec创建函数的语法规则 create or replace function  函数名 (参数名1 参数类型,参数名2 参数类型)  return number  is Result num ...

  4. orcale 单行函数之数字函数, 日期函数

    日期函数: 案例:

  5. orcale单行函数之字符函数

  6. orcale和hive常用函数对照表(?代表未证实)

    函数分类 oracle hive 说明 字符函数 upper('coolszy') upper(string A) ucase(string A) 将文本字符串转换成字母全部大写形式 lower('K ...

  7. Orcale的NVL、NVL2函数和SQL Server的ISNULL函数

    Orcal 的 nvl函数 NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值,Expr1,Expr2都为NULL则返回NULL NVL2(Expr1 ...

  8. orcale函数

    字符函数    1.ASCII 返回与指定的字符对应的十进制数;  select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space ...

  9. orcale 函数wm_concat不存咋lob值使用zh_concat 替换

    create or replace TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR VARCHAR2(32767), STATIC ...

随机推荐

  1. css长按复制内容

    复制2333333 <style> p { -webkit-user-select: none; user-select: none; } p>i { -webkit-user-se ...

  2. Transaction And Lock--锁相关基础

    --=======================================================--锁提示--holdlock :将共享锁保留到事务完成,而不是在相应的表.行或数据页 ...

  3. Cordova deploy on Android

    网上找了几篇Phonegap在安卓上的部署,版本都比较老了,不过还是部署成功了, 写篇博客以做纪录. 1.先下载IDE:戳 2.下载Phonegap:戳 3.启动ADT,新建普通Android App ...

  4. C# redis 的简单应用

    region 准备参数 var connStr = "localhost:6379,password="; var db = 2; SiteRedisHelper redisHel ...

  5. django view function

    view function 的几种返回值 return HttpResponse(html) return HttpResponseNotFound(html) raise Http404(" ...

  6. 【题解】 [NOI1999]生日蛋糕

    题面 传送门 Solution 搜索每一层的半径和高度,然后加入一些剪枝就好了. #include<stdio.h> #include<stdlib.h> #include&l ...

  7. zTree API中刷新树没效果

    想刷新树,但是根据API来的refresh无效 ---------------------------------------------------------------------------- ...

  8. Python 验证码识别(别干坏事哦...)

    关于python验证码识别库,网上主要介绍的为pytesser及pytesseract,其实pytesser的安装有一点点麻烦,所以这里我不考虑,直接使用后一种库. python验证码识别库安装 要安 ...

  9. HTTP请求的两种方式get和post的区别

    1,get从服务器获取数据:post向服务器发送数据: 2,安全性,get请求的数据会显示在地址栏中,post请求的数据放在http协议的消息体: 3,从提交数据的大小看,http协议本身没有限制数据 ...

  10. Python 标准库之 xml.etree.ElementTree

    Python 标准库之 xml.etree.ElementTree Python中有多种xml处理API,常用的有xml.dom.*模块.xml.sax.*模块.xml.parser.expat模块和 ...