函数
函数用于返回特定数据。执行时得找一个变量接收函数的返回值;
语法如下: create or replace function function_name
(
argu1 [mode1] datatype1,
argu2 [mode2] datatype2, ........
)
return datatype
is
begin
end;
执行 var v1 varchar2(100)
exec :v1:=function_name
===============================================================================
不带任何参数
===============================================================================
create or replace function get_user return varchar2 is
Result varchar2(50);
begin
select username into Result from user_users;
return(Result);
end get_user;
执行:
===============================================================================
带in参数的
===============================================================================
create or replace function get_sal(empname in varchar2) return number is
Result number;
begin
select sal into Result from emp where ename=empname;
return(Result);
end get_sal;
执行: SQL> var sal number
SQL> exec :sal:=get_sal('scott');
===============================================================================
带out参数的函数
===============================================================================
create or replace function get_info(e_name varchar2,job out varchar2) return number is
Result number;
begin
select sal,job into Result,job from emp where ename=e_name;
return(Result);
end get_info;
执行: SQL> var job varchar2(20)
SQL> var dname varchar2(20)
SQL> exec :dname:=get_info('SCOTT',:job)
===============================================================================
带in out参数的函数
===============================================================================
create or replace function result(num1 number,num2 in out number) return number is
v_result number(6);
v_remainder number;
begin
v_result :=num1/num2;
v_remainder :=mod(num1,num2);
num2 :=v_remainder;
return(v_result);
Exception
when zero_divide then
raise_application_error(-20000,'不能除0');
end result;
执行: var result1 number;
var result2 number;
exec :result2:=30
exec :result1:=result(100,:result2)
===============================================================================
函数用于返回特定数据。执行时得找一个变量接收函数的返回值;
语法如下: create or replace function function_name
(
argu1 [mode1] datatype1,
argu2 [mode2] datatype2, ........
)
return datatype
is
begin
end;
执行 var v1 varchar2(100)
exec :v1:=function_name
===============================================================================
不带任何参数
===============================================================================
create or replace function get_user return varchar2 is
Result varchar2(50);
begin
select username into Result from user_users;
return(Result);
end get_user;
执行:
===============================================================================
带in参数的
===============================================================================
create or replace function get_sal(empname in varchar2) return number is
Result number;
begin
select sal into Result from emp where ename=empname;
return(Result);
end get_sal;
执行: SQL> var sal number
SQL> exec :sal:=get_sal('scott');
===============================================================================
带out参数的函数
===============================================================================
create or replace function get_info(e_name varchar2,job out varchar2) return number is
Result number;
begin
select sal,job into Result,job from emp where ename=e_name;
return(Result);
end get_info;
执行: SQL> var job varchar2(20)
SQL> var dname varchar2(20)
SQL> exec :dname:=get_info('SCOTT',:job)
===============================================================================
带in out参数的函数
===============================================================================
create or replace function result(num1 number,num2 in out number) return number is
v_result number(6);
v_remainder number;
begin
v_result :=num1/num2;
v_remainder :=mod(num1,num2);
num2 :=v_remainder;
return(v_result);
Exception
when zero_divide then
raise_application_error(-20000,'不能除0');
end result;
执行: var result1 number;
var result2 number;
exec :result2:=30
exec :result1:=result(100,:result2)
===============================================================================
发表评论
-
Oracle特别函数---First_Value
2009-11-10 14:09 1828FIRST_VALUE 功能描述:返回组中数据窗口的第一个值。 ... -
oracle定时删除表空间的数据并释放表空间
2009-10-13 16:53 2539这两天我一个朋友问我 ... -
oracle定时任务(dbms_job)
2009-10-13 16:50 2261今天总结下oracle的任务队列管理器(job queue ) ... -
Decode函数的语法
2009-10-13 16:47 934Decode函数的语法结构如下: decode (expre ... -
Oracle 中truncate与delete的区别
2009-10-13 16:27 989Oracle 中truncate与delete的区别 收藏 ... -
数据库---存储过程总结
2009-10-13 16:20 912定义: ... -
oracle执行计划的理解
2009-10-13 16:12 703执行计划的理解 计信息 ------------------ ... -
oracle定时添加或删除分区表的分区
2009-10-13 16:11 2029这几天,根据业务的需求和性能的考虑,需要定时删除历史数据,表里 ... -
Oracle常用数据字典表
2009-09-16 09:00 1072查看当前用户的缺省表空间 SQL>select us ... -
关于SQL中的“\”的转义
2009-05-30 08:23 883select ename from myemp where e ... -
Oracle存储过程学习(2)
2009-05-11 08:05 1121存储过程创建语法: create or rep ... -
ora-12154 TNS:"无法处理服务名"的一个解决方法
2009-04-13 15:48 1421很怪异的一个问题,在网络环境下配置客户端,竟然怎么也连不上主机 ... -
触发器
2009-02-10 20:27 980触发器 触发器是指被隐含执行的存储过程,当发生特定事件(例如修 ... -
Oracle 包
2009-02-06 20:08 1156包 包用于逻辑组合相关的PL/SQL类型、项、子程序,它由包 ... -
函数的纯度级别以及使用
2009-02-05 16:09 899函数的纯度级别以及使用 - 定义由函数读取或修改的数据种类。 ... -
管理存储过程和函数
2009-02-05 10:47 705管理存储过程和函数 1.列出当前用户的子程序 SQL>c ... -
Oracle存储过程
2009-02-04 11:05 1011Oracle存储过程 存储过程不仅可以简化客户端应用程序的开发 ... -
PL/SQL DEVELOPER 基本用法详解
2009-02-03 10:37 2335一.编辑表数据(浏览表 ... -
游标(二)
2009-02-02 16:14 793游标FOR循环 游标FOR循环是游标使用的最简单的方式,当使用 ... -
游标(一)
2009-02-01 15:28 777使用游标 当在pl/sql块中 ...
相关推荐
oracle自定义函数的总结,主要对如何定义函数以及使用。
oracle 自定义函数 解析文件以“|”分割字符串
oracle自定义日期函数、你值得拥有!
Oracle自定义函数,很详细的教程,各种函数自定义的详细讲解。
一、函数的创建、调用和权限1、创建函数create or replace function 函数名(参数1 模式 数据类型,) return 数据类型as --
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
oracle数据库,使用自定义函数,实现了金额的大写转换。sql语句中,直接调用此函数即可得到金额大写。
* 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序
Oracle自定义聚合函数,分析函数.
ORACLE crc3函数,将字符类型转换成唯一的数字类型,例如CSDN,经过crc32函数转换后,得到的值为-1016176976
NULL 博文链接:https://jadeluo.iteye.com/blog/1213549
主要介绍了Oracle自定义脱敏函数的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
学习 游标 视图 自定义函数不二选择,我觉得看完之后学到东西了
在oracle中利用函数实现计算公式解析|在oracle中利用函数实现计算公式解析
PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。 相同点: 完成特定功能的程序 不同点:是否用return语句返回值。 ...
关于Oracle自定义聚集函数的使用 。
Oracle效验统一代码正确性的自定义函数,效验规则以国标为准.
oracle与mysql各种语法定义及函数的不同之处及解决方案 由于项目原因要将oracle的原数据理力争库转成mysql。所以总结了此文档,关于存储过程游标函数的不同等作了相应的对比及解决方案!