ORACLE自定义函数之简单示例

前言:

因工作环境需要,之前使用过的ORACLE语句自我感觉比较low,越来越不能满足工作需要。再者数据库自定义函数和数据库存储过程以及触发器是数据库技能进阶的必须迈过去的坎,趁着工作稍微闲的时候,将他们全部拿下。这是第一篇,关于oracle数据库自定义函数的使用,之后会续oracle存储过程及触发器的博文,用来记录和总结所学的知识点。同时也希望能帮助到您!本文适合入门级人士,不喜勿喷。

------------------------------------------------------------------------------------------------------------------------------------

一、创建数据库表,用于后面函数使用

create  table TestTable1 (
id varchar2(10),
name varchar2(20),
sale number(6)
)

insert into TestTable1 (id,name,sale) values('1','jack','3000');
insert into TestTable1 (id,name,sale) values('2','rose','4000');
insert into TestTable1 (id,name,sale) values('3','jason','5000');

准备工作完毕;


二、自定义函数,工资少于等于3000的加500

create or replace function changeSales(sales number)
return number
is
toSales number;
begin
if sales <= 3000 then toSales := sales+500;
else  toSales := sales;
end if;
return toSales;
end;

三、调用函数changeSales(sales number

select t.* ,changeSales(t.sale) from TestTable1 t;


简单示例演示完毕!

-------------------------------------------------------------------------------------------------------------------------------

下面继续演示一个实际业务需要的函数案例!

业务需求介绍,如下图所示,需要根据WN19的类型去不同的表查询wn18对应的名字


CREATE OR REPLACE FUNCTION GETDEALNAME(DEALID VARCHAR2,DEALTYPE VARCHAR2)
RETURN VARCHAR2
IS
DEALNAME VARCHAR2(50);
BEGIN
IF DEALTYPE ='X' THEN SELECT SU01 INTO DEALNAME FROM FE_BASE5.SYS_USERS WHERE SU00 = DEALID; END IF;
IF DEALTYPE ='Y' THEN SELECT SR01 INTO DEALNAME FROM FE_BASE5.SYS_ROLE WHERE SR00 = DEALID; END IF;
RETURN DEALNAME;
END;

自定义函数GETDEALNAME编译后,执行下面的查询语句。搞定!


所有示例显示完毕,欢迎大家留言,相互学习!

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle 自定义函数是一种用户定义的函数,它可以使用 PL/SQL 或 SQL 语言编写,以满足特定需求。下面是 Oracle 自定义函数的详细介绍: 1. 函数语法 Oracle 自定义函数的语法如下: ```sql CREATE [OR REPLACE] FUNCTION function_name (parameter1 datatype1, parameter2 datatype2, …) RETURN return_datatype IS variable datatype; BEGIN -- 函数体 RETURN value; END; ``` 其中,OR REPLACE 是可选的,表示如果函数已经存在则替换它。function_name 是函数名称,参数列表包括参数名称和数据类型,RETURN 是函数返回值的数据类型,IS 开始函数体,variable 是函数中使用的变量,value 是函数的返回值。 2. 函数示例 下面是一个 Oracle 自定义函数示例,用于计算两个数的和: ```sql CREATE OR REPLACE FUNCTION add_numbers ( n1 NUMBER, n2 NUMBER ) RETURN NUMBER IS sum NUMBER; BEGIN sum := n1 + n2; RETURN sum; END; ``` 该函数包括两个参数,分别为 n1 和 n2,返回值为 sum。 3. 调用函数 调用 Oracle 自定义函数的语法如下: ```sql SELECT function_name(parameter1, parameter2, …) FROM dual; ``` 其中,dual 是 Oracle 内置的一张虚拟表,用于测试和计算表达式。在调用函数时,需要传入函数所需的参数。 例如,要计算 2 和 3 的和,可以使用以下语句: ```sql SELECT add_numbers(2, 3) FROM dual; ``` 该语句将返回值 5。 4. 注意事项 在编写 Oracle 自定义函数时,需要注意以下几点: - 函数名称必须唯一。 - 函数参数和返回值必须指定数据类型。 - 函数体中可以包含 PL/SQL 或 SQL 语句。 - 函数中可以使用变量和控制结构。 - 函数必须以 RETURN 语句返回值。 - 函数在调用时需要传入参数。 - 函数可以在 SQL 语句中使用,也可以在 PL/SQL 块中使用。 - 函数的返回值可以是标量或表格。 总之,Oracle 自定义函数是一种非常有用的工具,可以帮助用户解决各种数据处理问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值