Oracle function函数

注:
oracle中表名 / 函数名 / 字段名 长度不能超过30个字符;
mysql中表名 / 字段名 长度不能超过64个字符;
sqlserver中表名 / 字段名 长度不能超过128个字符;
db2中表名 / 字段名 长度不能超过128个字符;
postgresql中表名 / 字段名 长度不能超过128个字符;

1.创建一个简单的函数
--创建函数语句
create or replace function f1
return varchar2
as
begin
  return '测试';
end;

-- 查询函数语句
select f1() from dual;

–查询函数返回结果
在这里插入图片描述

2.创建一个带参的简单函数
---接受参数的函数
create or replace function f2(p_w varchar2)
return varchar2
as
   v_f char(2);         --声名的两个变量
   v_a varchar2(500);
begin
    --判断是否有数据,没有数据则返回null
    if p_w is null then
    return null;
    end if;
    if length(p_w)=0 then
    return null;
    end if;
    --截取第一个字符,substr('要操作的字符串',截取起始位置[oracle中下标是从1开始],要截取几个字符)是oracle的字符串的截取函数
    v_f :=substr(p_w,1,2);
    --取剩余的字符
    v_a:=substr(p_w,3);
    v_a:=lower(v_a); --转成小写
    v_f:=upper(v_f); --转成大写
    v_a:=v_f||v_a;   --把处理过的两个变量拼接并赋值给在开头处声名的变量
    return v_a;   -- 返回值
end;

--查询函数  
select f2('ceshi') from dual;

在这里插入图片描述

3. 创建一个带参数的简单函数
create or replace function f3(num1 in number,num2 in number)  -- in 表示可以赋值
return number
as
  num3 number;
  num4 number;
  num5 number;
begin
   num3 := num1+num2;
   num4 := num3*num1;
   num5 := num4 - num2;
   return num5;
end;

select f3(5,3) from dual;

4.结合数据库表创建一个简单的函数
(oracle中开发人员写自己的sql function时,入口参数名不要与select中table的字段名重复,否则虽然编译能正常通过,但运行的结果有可能产生错误。)

create or replace function get_Dict_Name_By_Code(dict_code varchar2)
return varchar2 is dict_name varchar2(256);
begin
  select 
       t.hdict_name into dict_name 
  from
       HOSP_DICT t 
  where 
       t.hdict_code = dict_code;
  return dict_name;
end;

-- 查询函数
select get_Dict_Name_By_Code('CV04.10.022') from dual;

5.创建函数的模型

create or replace function name(param varchar2,param2 number)   -- name:你的函数名称;param和param2为两个参数
return varchar2 / number / ...                       --函数返回值类型
is result varchar2(256) / number / ... ;             --声名返回值名称及数据类型
begin
     ...                      --函数方法体
     return result;           --返回声名的变量值
end;
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值