本次主题 青涩/色

    函数的结束一定要使用return语句返回一个与声明匹配的值

--语法:

create[or replace] function<函数名> [(参数列表)]

return数据类型

is|as (is或as完全等价 )

[局部变量声明]

begin

pl/sql函数体

end[<函数名>]

--函数 没有参数

create or replace function getCount
return number
as  v_num number;

begin
  select count(*) into v_num from v_emp;
  return v_num;
end;

--调用函数1
select getCount() from dual;
--调用函数2 plsql语句块
declare
num number;
begin
num := getCount();
dbms_output.put_line(num);
end;

--带有 in 参数的函数, in 默认 ,可以使用select语句和plsql语句块调用函数

create or replace function getName(v_name varchar2)
return varchar2
as
v_person v_emp%rowtype;
v_str varchar2(100);
begin
select * into v_person from v_emp where ename = v_name;
v_str := '当前人是'||v_person.ename||' 工资是'||v_person.sal;
return v_str;
end;

--调用函数  select语句

select getPersonByName('SMITH') from dual;

--调用函数  plsql语句块

declare
a_name varchar2(50);
begin
a_name := getName('SMITH');
dbms_output.put_line(a_name);
end;

--带有 out 参数的函数   函数携有out参数的,只能使用plsql语句块调用函数

create or replace function getSal(p_name varchar2,e_sal out number)
return varchar2
as
v_st varchar2(100);
begin
select sal into e_sal from v_emp where ename=p_name;
v_st := p_name||'每个月开'||e_sal||'元';
return v_st;
end;

--调用函数 plsql语句块

declare
v_str varchar2(20);
v_sal number;
begin
v_str := getSal('SMITH',v_sal);
dbms_output.put_line(v_str);
dbms_output.put_line(v_sal);
end;

-- 带有 in out 参数的函数 同样有out参数的函数,只能由plsql语句块调用函数

create or replace function swap(num1 in out number,num2 in out number)
return varchar2
as
temp number;
begin
temp := num1;
num1 := num2;
num2 := temp;
return 'abc';
end;

--调用函数

declare
num1 number := 10;
num2 number := 20;
v_str varchar2(20);
begin
dbms_output.put_line(num1||'=========='||num2);
v_str := swap(num1,num2);
dbms_output.put_line(num1||'=========='||num2);
end;

oracle 之 函数的更多相关文章

  1. oracle add_months函数

    oracle add_months函数 add_months 函数主要是对日期函数进行操作,举例子进行说明 add_months 有两个参数,第一个参数是日期,第二个参数是对日期进行加减的数字(以月为 ...

  2. Oracle to_date()函数的用法

    Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...

  3. Oracle over函数

    Oracle over函数   SQL code: sql over的作用及用法RANK ( ) OVER ( [query_partition_clause] order_by_clause )DE ...

  4. Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...

  5. Oracle SQL函数

    Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...

  6. Oracle trunc()函数的用法

    Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...

  7. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

  8. 转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数

    关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select ...

  9. oracle日期函数转换真麻烦。。。

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual  --2011 ...

  10. Oracle to_char()函数的使用细则

    Oracle to_char()函数的使用细则,学习连接 http://www.cnblogs.com/reborter/archive/2008/11/28/1343195.html

随机推荐

  1. 【转】Unity中添加组件的几种方法

    http://blog.csdn.net/monzart7an/article/details/23199647 一.在编辑器上面添加一个组件.这个不用多说. 二.在脚本中利用AddComponent ...

  2. 使用Entity Framework 自动产生的Sql语句

    对于一个单独实体的通常操作有3种:添加新的实体.修改实体以及删除实体. 1.添加新的实体 Entity Framework Code First添加新的实体通过调用DbSet.Add()方法来实现. ...

  3. C#Web异步操作封装

    using System; using System.Collections.Generic; using System.Web; namespace HttpAsync { /// <summ ...

  4. ThinkPHP的缓存技术

    原文:ThinkPHP的缓存技术 如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷.假如我们 把读取数据的过程分为三个层,第一个 ...

  5. 用Appium进行android自动化测试

    appium是开源的移动端自动化测试框架,可以测试ios,android应用.appium让移动端自动化测试不必限定在某种语言和某个具体的框架:也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来 ...

  6. Java 并发性和多线程

    一.介绍 在过去单 CPU 时代,单任务在一个时间点只能执行单一程序.之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程.虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 ...

  7. soap和http的区别

    Http get,post,soap协议都是在http上运行的1)get:请求参数是作为一个key/value对的序列(查询字符串)附加到URL上的查询字符串的长度受到web浏览器和web服务器的限制 ...

  8. ubuntu编译运行xv6

    最近想找个简单的类Unix系统学习下, xv6不错的, 所有代码加起来不到一万行,首先把代码跑起来还是很重要的. # 下载xv6源码并编译 git clone git://pdos.csail.mit ...

  9. iOS,html使用交互相关

    1.UIWebView加载Html文件 2.UIWebView的委托方法 3.UIWebView和JS交互 4.使用Safari,WebView调试html 5.使用WKWebView加载Html,和 ...

  10. 使用回车键代替TAB键 需jquery1.4.2版本

    1 $(document).ready(function () { 2 $(':input:text:first').focus(); 3 $(':input:enabled').addClass(' ...