Oracle函数的定义
一、函数
函数是作为数据库对象存储在oracle数据库中,函数又被称为PL/SQL子程序。oracle处理使用系统提供的函数之外,用户还可以自己定义函数。函数通常被作为一个表达式来调用或存储过程的一个参数,具有返回值。通常用于返回特定的数据。 函数语法如下:
create or replace function 函数名称 (
参数名称 测试类型,
参数名称 测试类型
)
return 数据类型
is
自定义变量名 数据类型
begin
处理语句;
return 自定义变量名;
exception
异常处理语句;
end;
函数和存储过程类似,只是函数必须有返回值。
二、实例
1、没有参数的函数
create or replace function test return varchar2 is beginreturn 'hello world'; end test; -- 函数调用 begindbms_output.put_line(test()); end
2、有输入参数的函数
create or replace function get_name(v_id number ) return varchar2 is --is类似于declarev_name varchar2(50); beginselect username into v_name from person where id = v_id;return v_name; end get_name; -- 函数调用 begin dbms_output.put_line(get_name(1)); end;
3、有带输入和输出的函数
create or replace function get_perons_info(f_id number,f_age out number ) return varchar2 isv_name varchar2(50); --必须有声明长度 beginselect username, age into v_name, f_age from person where id = f_id;return v_name; end get_perons_info; -- 函数调用 declarev_age number;v_name varchar2(255); beginv_name := get_perons_info(1, v_age );dbms_output.put_line('name:'||v_name||' age:'||v_age); end;
4、带有输入输出参数的函数
create or replace function get_person_info2(f_id in out number ) return varchar2 isv_name varchar2(50); beginselect username, age into v_name, f_id from person where id = f_id;return v_name; end get_person_info2; -- 函数调用 declarev_id number;v_name varchar2(50); beginv_id := 1;v_name := get_person_info2(v_id);dbms_output.put_line('name:'||v_name||' age:'||v_id ); end;
5、函数返回游标
create or replace function get_person_allreturn sys_refcursor isp_cursor sys_refcursor; beginopen p_cursor forselect * from person; return p_cursor;exceptionwhen others thenDBMS_OUTPUT.PUT_LINE('获取信息发生错误'); end get_person_all; --函数调用 declarec_cursor sys_refcursor;r_person person%rowtype; beginc_cursor := get_person_all();--2、打开游标 -- open c_cursor; --此处不需要显示地打开游标,因为调用存储过程的时候返回的游标已经打开了--3、提取数据loopfetch c_cursor into r_person;exit when c_cursor%notfound; -- 下面没有数据的时候,退出dbms_output.put_line('id:'||r_person.id);dbms_output.put_line('username:'||r_person.username);dbms_output.put_line('age:'||r_person.age); end loop; end;
三、函数其他命令
重新编译函数
alter function 函数名称 compile;
删除函数
drop function 函数名称;
查看指定的函数
select * from dba_objects where object_name = '函数名称(字母大写)' and object_type ='FUNCTION';
转载于:https://www.cnblogs.com/ChenNotepad/p/4044768.html
Oracle函数的定义相关推荐
- oracle 函数索引
http://bbs.51cto.com/thread-26271-1.html 如何创建oracle函数索引 Oracle8i的很重要的一个新特性就是增加了function-based index这 ...
- row number函数 oracle,oracle函数 ROW_NUMBER()
[语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...
- java查询出来的日期类型_Java的第29天,Oracle函数
今天是学习Java的 第29天. 今天学习了数据库中DQL语言中的逻辑条件关系,优先规则,使用order by 排序.学习了Oracle函数,包括单行函数和多行函数,学习了字符函数,字符处理函数,数字 ...
- 几个常用的Oracle函数及实例运用
几个常用的Oracle函数及实例运用 Oracle数据库函数非常多,平时常用的只有那么几种,大象根据实际项目情况,列举几个最常用的函数综合运用的例子. 我这里所说的是针对Oracle数 ...
- oracle创建编号函数,oracle函数初次尝试
初次着手写function,确实费了好长时间,一个if就需要有个end if ,并且else必须和if一起使用,可以直接对传进来的参数使用oracle自带的函数进行处理,并直接做做判断条件. 需求根 ...
- oracle函数-动态结果输出
1.oracle函数创建 create or replace function fun_test()begin end fun_test; 2.函数调用 select * from table(fun ...
- java oracle查询结果list取数,Oracle函数返回Table集合
Oracle table()函数查询函数返回的结果集 2015年12月13日 22:42:51 warrenjiang 阅读数:7452 版权声明:本文为博主原创文章,未经博主允许不得转载. http ...
- oracle函数-LPAD/RPAD
基本用法: lpad函数 函数介绍 lpad函数是 Oracle 数据库函数,lpad函数从左边对 字符串使用指定的字符进行填充.从其字面意思也可以理解,l是left的简写,pad是填充的意思,所以l ...
- oracle函数删除语法,Oracle Delete
oracle函数 的 Oracle Delete 在本教程中,您将学习如何使用Oracle DELETE语句从表中删除一行或多行. 要从表中删除一行或多行,请按如下所示使用Oracle DELETE语 ...
最新文章
- 网站速度优化-前端篇
- 公开课报名 | 详解CNN-pFSMN模型以及在语音识别中的应用
- Qt Creator 快捷键
- SnapGene 4.3.6 win 中文完美不闪退
- 【工具】Win 7/8/10 下使用 VC++6.0
- JavaScript Iframe富文本编辑器中的光标定位
- bat批处理教程 24
- ios react_查找内存泄漏React本机应用程序(iOS)
- 变压器绕组降低邻近效应_高功率UPS性能提升,规格/重量显著降低
- GoLang笔记—容器篇
- 衣带渐宽终不悔,为伊消得人憔悴--DbHelper增强版
- 微软Windows商店会变得更像Steam ,Xbox可自由安装PC游戏
- Scala为什么是大数据第一高薪语言
- SSL/TLS安全:Schannel中WinShock漏洞及解决办法
- 怎么开发一个完整的对外接口API
- 使用Python的psutil包获取机器IPv4信息
- 巧妙地数组之类的数据平移
- Tailwind教程2 - 基础样式
- Easy Save 3
- 洛阳理工JAVA期末考试_洛阳理工学院2010/2011学年第一学期基础体育理论期末考试试题答案...