oracle function函数_oracle 在function中定义变量-程序员宅基地

技术标签: oracle  Oracle  

1、函数即实现某种特殊功能的sql语句,先来个简单的入题:
select upper(‘abcdf’) from dual ;

在这里插入图片描述
上图所示 为upper(‘abcdf’) 函数,其作用为将小写的字母转换为大写;

2、自定义函数:
想想如何将字符串:‘abcdf’ 的首字母改为大写,其余为小写呢?于是我们自己定义一个函数将其实现:

create or replace function f2(p_w varchar2)        --p_w 为传入参数
return varchar2                                                   --返回类型
as
v_f char(1);                        --定义变量v_f
v_a varchar2(500);            --定义变量v_a
begin
--判断是否有数据
if p_w is null then
  return null;
end if;

if length(p_w)=0 then
    return null;
end if;

--取第一个字
v_f :=substr(p_w,1,1);                 --【:=】是赋值的意思(即将右边的赋给左边的)

--取剩余
v_a:=substr(p_w,2);
v_a:=lower(v_a);--小写
v_f:=upper(v_f);

--拼接
v_a:=v_f||v_a;
return v_a;
end;

效果如下:
在这里插入图片描述

3、来点干货:
在这里插入图片描述
写一个函数实现输入功能分类的编码,返回该功能分类的全称;
如:
输入:xxxfunction(‘101010103’),
返回:税收收入/增值税/国内增值税/股份制企业增值税

create or replace function fn_getkmqc(char_code in varchar2)
return varchar2
/*功能科目分为类款项
编码规则为:3-2-2-2-2
类:3位
款:2位
项:2位*/
as
v_n number(10);
v_a varchar2(500);
v_b varchar2(500);
v_c varchar2(500);
begin
v_n := 3;
LOOP
    v_b := substr(char_code,1,v_n);
    select t.chr_name into v_a from GOV_GNFL t where t.chr_code=v_b ;

    if v_b = char_code then
       v_c := v_c||v_a;
    else
      v_c := v_c||v_a||'/';
    end if;

    v_n := v_n + 2;
    EXIT WHEN v_b = char_code;
   END LOOP;
return v_c;
end;

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/agelbaby/article/details/90813246

智能推荐

[Win7/Win10]如何有效地关闭自动更新(Windows Update)_笔记本wim7总自动更新怎么关闭-程序员宅基地

文章浏览阅读1.1k次。 尝试过很多办法去关闭自动更新,但是过几天总是会卷土重来。虽然自动更新更加安全,但对于我们日常用户来说,自动更新总是带来很多麻烦。那么,应当如何有效地关闭自动更新呢? 1,按下win+r键打开“运行”窗口,输入“gpedit.msc”打开组策略。如图:2,依次点击“计算机配置-管理模板-Windows组件”,如图:3,在右边找到“Windows Update”(win..._笔记本wim7总自动更新怎么关闭

IIS 之 在IIS7、IIS7.5中应用程序池最优配置方案_设置iis进程模型-程序员宅基地

文章浏览阅读1k次。找到Web站点对应的应用程序池,“应用程序池” → 找到对应的“应用程序池” → 右键“高级设置...”  一、一般优化方案  1、基本设置  [1] 队列长度: 默认值1000,将原来的队列长度改为 65535。  [2] 启动32位应用程序:默认值False,改为True, 否则安装一些32的组建或32位的php都会出错。  [3] 托管管道模式_设置iis进程模型

three.js建立一个可交互的机房机柜_three.js 机房 源码-程序员宅基地

文章浏览阅读5.9k次,点赞9次,收藏44次。<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>一个可以开门的机柜</title> <style> *{ margin:0; pa..._three.js 机房 源码

QTextEdit个人使用心得_qtextedit qpixmap-程序员宅基地

文章浏览阅读2.3k次,点赞7次,收藏11次。本篇文章讲述的是对Qt QTextEdit控件在使用中获得的一些心得和遇到的一些问题以及解决办法。采用了一些前辈的方法(在此不再一一列出地址,时间久远具体链接找不到了,如有需要请搜索其关键字,抱歉了)并加以改进的,算是在此记录自己成长的过程,分享出来希望能帮助到有需要的人。_qtextedit qpixmap

shell中的比较运算符 -eq -ne -gt -lt -ge -le 及 == != 与 逻辑运算符$$ || !_shell -ne-程序员宅基地

文章浏览阅读4.5w次,点赞14次,收藏64次。shell中的比较运算符:-eq //等于-ne //不等于-gt //大于 (greater)-lt //小于(less)-ge //大于等于-le //小于等于命令的逻辑关系:在 linux 中命令执行状态:0 为真,其他为假 。$? 是显示最后命令的退出状态,0 表示没有错误,其..._shell -ne

【C++】关于lower_bound和upper_bound的使用-程序员宅基地

文章浏览阅读263次。lower_bound与upper_bound从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound(begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。

随便推点

verilog语法实例学习(13)-程序员宅基地

文章浏览阅读121次。verilog代码编写指南变量及信号命名规范 1. 系统级信号的命名。  系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号;系统信号以字符串Sys开头。  2. 低电平有效的信号后一律加下划线和字母n。如:SysRst_n;FifoFull_n;   3. 经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别 如CpuRamRd信号,经锁存后应..._verilog筛选

C语言第五课-输出双精度(double)数_c语言中整型变量计算输出双精度-程序员宅基地

文章浏览阅读803次,点赞8次,收藏12次。/ 定义双精度变量。使用 printf() 与 %e 输出双精度数。C 语言实例 - 输出双精度(double)数。printf("d 的值为 %le", d);// 声明双精度变量。d 的值为 1.200123e+01。_c语言中整型变量计算输出双精度

12c 2cpu oracle se_Oracle GoldenGate价格(11G/12C中文企业版2CPU)-程序员宅基地

文章浏览阅读838次。OracleGoldenGate,简称OGG,是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。OracleGoldenGate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据仓库供应、交易..._cpu 12c*2 6626

mysql发送数据网页显示,通过JSP网页链接MySQL数据库,读取数据库显示在JSP网页...-程序员宅基地

文章浏览阅读579次。通过JSP网页链接MySQL数据库,读取数据库显示在JSP网页通过JSP网页链接MySQL数据库,读取数据库显示在JSP网页通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中一. 安装所需软件安装java和tomcat,建立JSP网页最基础的软件;安装MySQL数据库(下载地址:https://www.mysql.com;安装Navicat Premium来查看..._mysql数据如何挂到网页

17 -> 详解 openWRT 的 gpio 配置关系说明_openwrt gpio dts-程序员宅基地

文章浏览阅读3.2k次。OpenWRT 系统的 gpio 可用配置为键盘输入、led输出、控制输出等,以 mt7621 为例,相互关系说明如下:第一步 查看设备树配置文件/OpenWrt/mtk7621-19.07$ ls target/linux/ramips/dts/ | grep 7621AP-MT7621A-V60.dtsMT7621.dtsmt7621.dtsi #(1) mt7621 芯片资源的基本配置文件U7621-06-256M-16M.dts # (3)_openwrt gpio dts

mate20pro怎样装鸿蒙系统,华为放大招!华为Mate20系列也能拍月亮,以后还能升级鸿蒙...-程序员宅基地

文章浏览阅读3.7k次。上半年国内手机市场的新机数量明显减少,但也出现了一些可喜的变化,比如一加7 Pro使用2K分辨率90Hz刷新的屏幕,比如低亮度无频闪的DC调光。相比前一项,DC调光更值得关注,因为这是在网友的驱动下出现的改变。支持DC调光可以让屏幕在低亮度下无频闪,减少对眼睛的伤害。魔法师蛋小丁提出来之后,OPPO首先响应,随后蔓延至整个手机行业。到现在为止,上半年发布的旗舰手机大都支持DC调光,即使硬件不支持,..._华为mate20pro更新鸿蒙系统后有月亮模式吗