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
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值