函数
函数用于返回特定数据。执行时得找一个变量接收函数的返回值;
语法如下: 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 1856FIRST_VALUE 功能描述:返回组中数据窗口的第一个值。 ... -
oracle定时删除表空间的数据并释放表空间
2009-10-13 16:53 2615这两天我一个朋友问我 ... -
oracle定时任务(dbms_job)
2009-10-13 16:50 2300今天总结下oracle的任务队列管理器(job queue ) ... -
Decode函数的语法
2009-10-13 16:47 989Decode函数的语法结构如下: decode (expre ... -
Oracle 中truncate与delete的区别
2009-10-13 16:27 1025Oracle 中truncate与delete的区别 收藏 ... -
数据库---存储过程总结
2009-10-13 16:20 947定义: ... -
oracle执行计划的理解
2009-10-13 16:12 737执行计划的理解 计信息 ------------------ ... -
oracle定时添加或删除分区表的分区
2009-10-13 16:11 2081这几天,根据业务的需求和性能的考虑,需要定时删除历史数据,表里 ... -
Oracle常用数据字典表
2009-09-16 09:00 1106查看当前用户的缺省表空间 SQL>select us ... -
关于SQL中的“\”的转义
2009-05-30 08:23 948select ename from myemp where e ... -
Oracle存储过程学习(2)
2009-05-11 08:05 1145存储过程创建语法: create or rep ... -
ora-12154 TNS:"无法处理服务名"的一个解决方法
2009-04-13 15:48 1449很怪异的一个问题,在网络环境下配置客户端,竟然怎么也连不上主机 ... -
触发器
2009-02-10 20:27 1018触发器 触发器是指被隐含执行的存储过程,当发生特定事件(例如修 ... -
Oracle 包
2009-02-06 20:08 1205包 包用于逻辑组合相关的PL/SQL类型、项、子程序,它由包 ... -
函数的纯度级别以及使用
2009-02-05 16:09 944函数的纯度级别以及使用 - 定义由函数读取或修改的数据种类。 ... -
管理存储过程和函数
2009-02-05 10:47 743管理存储过程和函数 1.列出当前用户的子程序 SQL>c ... -
Oracle存储过程
2009-02-04 11:05 1044Oracle存储过程 存储过程不仅可以简化客户端应用程序的开发 ... -
PL/SQL DEVELOPER 基本用法详解
2009-02-03 10:37 2369一.编辑表数据(浏览表 ... -
游标(二)
2009-02-02 16:14 824游标FOR循环 游标FOR循环是游标使用的最简单的方式,当使用 ... -
游标(一)
2009-02-01 15:28 812使用游标 当在pl/sql块中 ...
相关推荐
在 Oracle 数据库中,自定义函数是一种非常重要的特性,允许用户根据需求创建自己的功能模块,以扩展数据库的内置功能。本文将详细讲解如何创建、调用和管理自定义函数,以及讨论它们在实际应用中的优缺点。 一、...
本文将详细介绍Oracle自定义函数的定义、使用方法以及一些高级特性。 #### 二、基本语法与定义 1. **定义函数的基本语法**: ```sql CREATE [OR REPLACE] FUNCTION function_name (参数列表) RETURN 返回类型 ...
oracle 自定义函数 解析文件以“|”分割字符串
Oracle自定义函数,很详细的教程,各种函数自定义的详细讲解。
Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...
3、兼容性与灵活性: 适用于各种 Oracle 数据库环境,无论是本地部署还是云数据库,均可无缝集成,满足不同场景需求。 4、详尽注释文档: 提供了完整的函数代码及详细的注释说明,便于用户快速理解与应用,同时降低...
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
oracle数据库,使用自定义函数,实现了金额的大写转换。sql语句中,直接调用此函数即可得到金额大写。
* 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序
Oracle 自定义聚合函数-分析函数 Oracle 自定义聚合函数是一种强大且灵活的功能,允许用户根据自己的需求创建自定义的聚合函数。聚合函数是一种特殊的函数,它可以对一组数据进行处理和计算,并返回一个结果。 ...
1. 高效性:此函数针对Oracle数据库环境进行了优化,能够快速处理大量数据,显著提升数据处理效率。 2. 安全性:通过将手机号码的中间四位替换为星号(*),有效防止了敏感信息泄露,满足GDPR等国际隐私法规的要求。 3...
在IT行业中,数据库管理系统(DBMS)如...总结来说,这个Oracle自定义函数是针对统一社会信用代码的效验工具,遵循国家的效验规则,确保在数据库中存储的USCC信息的准确无误,这对于在中国进行合规操作的企业至关重要。
1. **创建Oracle函数**:在Oracle数据库中,我们首先需要创建一个自定义函数。例如,我们可以创建一个计算两个数字之和的函数`ADD_NUMBERS`: ```sql CREATE OR REPLACE FUNCTION ADD_NUMBERS(p_num1 NUMBER, p_...
### ORACLE CRC32函数详解 #### 一、概述 在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成...
Oracle自定义脱敏函数是数据库管理中用于保护敏感数据的一种常见方法,尤其是在处理用户个人信息时。本文将深入解析Oracle自定义脱敏函数的实现细节,以确保在数据共享、备份或分析时不泄露关键信息。 首先,我们来...
### Oracle游标、视图和自定义函数 #### 1. 游标 **1.1 游标的优势和类型** 在数据库应用开发过程中,游标作为一种强大的工具,为开发者提供了一种处理从表中检索出的数据的有效方法,特别是在需要逐条处理数据...
2. **Oracle自定义函数**: 自定义函数与存储过程类似,但它们通常用于返回单个值。函数可以在查询中直接使用,比如在SELECT语句中,增强查询的灵活性。比如,你可以编写一个计算折扣的函数,根据客户等级返回不同...