Oracle 自定义函数

article/2025/11/10 2:23:25

语法结构

CREATE [OR REPLACE] FUNCTION '定义的函数名称'('参数名1' '参数类型','参数名2' '参数类型', ...) RETURN '返回值类型'
AS/IS
返回值形参 形参类型实例化
BEGIN
方法体
(其中用到if判断的话,每一个if对应一个end if,出现几次if就会有几个end if;)
RETURN (接收过实参的)返回值形参
[EXCEPTION '异常处理部分']
END;

以SCOTT账户中的emp和dept两张表为例:

EMP表:

DEPT表:

例一:统计薪资大于等于3000的员工人数。

要求输出格式:人数为1时,输出'有一位员工薪资大于3000';不止1人时,输出'有...位员工薪资大于3000';一个也没有就输出'没有员工薪资大于3000'。

create or replace function empSal return varchar2
asresult varchar2(32);temp number;beginselect count(sal) count into temp from SCOTT.emp e where e.sal>=3000;if temp=1 thenresult:='有一位员工薪资大于3000';else if temp>1 thenresult:='有'||temp||'位员工薪资大于3000';else result:='没有员工薪资大于3000';end if;end if;return result;end;select empSal() from dual;

查询结果: 

例二:自定义代参函数,参数为部门名称,统计输入部门员工人数。

create or replace function depA2(dep varchar2) return number
asresult number;begin
select t.count into result from (select count(e.deptno) count from SCOTT.dept d left join SCOTT.emp e on d.deptno=e.deptno where d.dname=dep) t;return result;end;select depA2('SALES') from dual;

查询结果:

例三:自定义代参函数,参数为部门名称,统计输入部门薪资大于等于3000的员工人数。

要求输出格式:人数为1时,输出'有一位员工薪资大于3000';不止1人时,输出'有...位员工薪资大于3000';一个也没有就输出'没有员工薪资大于3000'。

create or replace function highSaleAmount(dept varchar2) return varchar2
asresult varchar2(64);temp number;amount number;beginselect count(dname) into temp from SCOTT.dept d where d.dname in(dept);select count(sal) into amount from scott.emp e left join SCOTT.dept d on d.deptno=e.deptno where d.dname=dept and sal>=3000;if temp!=0 thenif amount=1 then result:='该部门有一位员工薪资大于3000';else if amount>1 then result:='有'||amount||'位员工薪资大于3000';else result:='该部门没有人薪资大于3000';end if;end if;elseresult:='没有这个部门';end if;return result;end;select highSaleAmount('ACCOUNTING') from dual;

查询结果:


http://chatgpt.dhexx.cn/article/BNhNuXBw.shtml

相关文章

oracle常用函数

1.sign sign函数是根据给的数为正数,就返回1,0返回0,负数返回-1。需要注意sign(这个括号里面只能是个字段),在括号中写个子查询直接就报错了! 2.decode 用法: decode(条件,值1,返回值1,值2,返回…

Oracle(四)Oracle 函数

目录 函数介绍Oracle字符型函数Oracle日期型函数系统日期、时间函数:数据库时区函数:给日期加上指定的月份函数:月份最后一天函数:指定日期后一周的日期函数:返回指定日期中特定部分的函数:返回两个日期间的月份数:日期…

oracle函数instr函数

1 instr函数的概念 在Oracle中可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。在一个字符串中查找指定的字符,返回被查找到的指定 的字符的位置。 2 语法 instr(sourceString,destString,start,appearPosition) instr(‘源字符串’,‘…

Oracle常用函数【建议收藏】

作者:IT邦德 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 (Web\java\Python)工作,主要服务于生产制造 现拥有 Oracle 11g OCP/OCM、 Mysql、Oceanbase(OBCA)认证 分布式TBase\TDSQL数据库、国…

Oracle常用函数大全

说明:新文章地址转为 Oracle数据库函数大全_長安社-王于铭.YuMing的博客-CSDN博客https://hevnchin.blog.csdn.net/article/details/132054755 MySQL数据库系统函数大全_長安社-王于铭.YuMing的博客-CSDN博客year:年份、month:月份、day&am…

Oracle中的函数(详细!!!)

文章目录 前言一、SQL中的函数两种SQL函数单行函数单行函数的分类1. 字符型函数LOWER函数UPPER函数INITCAP函数CONCAT函数SUBSTR函数INSTR函数LPAD|RPAD函数REPLACE函数 2. 数字函数ROUND函数TRUNC函数MOD函数 3. 使用日期查看系统时间根据时间查询信息日期的运算MONTHS_BETWEE…

OpenDaylight通过netconf对接netopeer2

目的 利用OpenDaylight(client)的南向接口netconf对接netopeer2(server) 搭建netopeer2 启动Ubuntu20的docker,将内部830端口映射为主机的22830端口 adminubuntu20:~$ docker run -d --name netopeer2_server --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro…

ORAN专题系列-16:5G O-RAN FrontHaul前传接口的网络配置管理协议netconf

前言 前传接口(FrontHual)是传统的BBU与RU之间的接口,在O-RAN之前,前传接口虽然定义了物理连接的CPRI接口规范标准,但CPRI之上承载的M plane的配置管理数据格式,却是设备厂家私有的。 有基于TCP的、有基于…

实验三:Netconf 接口配置实验(基于Schema API)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Netconf简介1.基本网络架构2.协议框架3.报文格式4.会话建立过程 二、实验步骤1.设备预配2.运维代码编写3.实验结果 前言 云时代对网络的关键诉求之一是网络…

Java NetConf 使用

1. 参考资料 工具包GIT地址 : https://github.com/Juniper/netconf-java 使用教程 : https://www.juniper.net/documentation/cn/zh/software/junos/netconf-java-toolkit/topics/task/netconf-java-toolkit-program-creating-and-executing.html 2. 下载&编译工具包 # 1. …

ComNet

1 ComNet 简介 ComNet设计的核心思想就是用深度神经网络来代替OFDM接收机,和FC-DNN类似。但是最大的不同之处,对接收机进行细化,将接收机分为了为信道估计子网和信号检测子网。每个子网由一个DNN构造,使用现有的简单、传统的解决…

「Python 网络自动化」NETCONF —— Python 使用 NETCONF 管理配置 H3C 网络设备

「Python 网络自动化」系列文章总目录 Nornir 中文手册——基于 Nornir3.0 官方文档的不完全翻译 文章目录 NETCONF 简单介绍NETCONF 协议结构NETCONF 报文结构请求报文格式报文回复格式 NETCONF 配置数据库NETCONF 支持的操作 实验操作基础环境配置网络环境设备配置代码环境 …

OF-CONFIG和NETCONF协议

一、OF-CONFIG协议 1.1 OF-CONFIG设计需求 1.1.1 实现对OF v1.3.1协议设备进行配置的设计需求 1.1.2 实现操作运维的设计需求 1.1.3交换机管理协议需求 1.2 OF-CONFIG协议的数据模型 1.3 OF-CONFIG的传输协议 二、NETCONF协议 2.1 NETCONF协议相对SNMP协议的优点 2.2 …

netconf是啥

netconf是啥 1 历史路由器配置方法:2 问题来了3 解决4 Netconf 是什么参考 1 历史路由器配置方法: 传统路由器配置方法中,以路由器来看,那就要去官网上查看文档,学习产品文档,然后在交换机上输入命令&…

从NETCONF/YANG看网络配置自动化

阅读冗长的NETCONF/YANG的RFC文档是相当乏味枯燥的,结合开发实践,本文试图删其繁,撮其要,给出NETCONF/YANG的轮廓和要点。 引子 NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化,从而简化和加快网络设备和服…

SDN之NETCONF Call Home

本文主要内容都来自于今年二月发布的RFC8071 - NETCONF Call Home and RESTCONF Call Home,该RFC从2015年4月提出到最终发布一共修改了17个版本,其间修改内容可以点击查看详细内容。 介绍 NETCONF Call Home支持两种安全传输网络配置协议分别是Secure …

NETCONF原理

NETCONF简介 网络配置协议NETCONF(Network Configuration Protocol)提供一套管理网络设备的机制,用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。通过NETCONF协议,网络设备可以提…

NETCONF YANG原理

NETCONF YANG原理 网络管理技术背景NETCONF协议介绍YAGN建模语言介绍RESTCONF协议 网络管理技术背景 前言 对于设备的配置管理,工程师更习惯使用CLI命令行的方式与设备交互。该方式简单直接,便于理解。但是在网络自动化领域,CLI方式与设备交…

NetConf Brower使用

1.下载MG-SOFT NETCONF Browser Professional Edition 官方地址 2. 安装MG-SOFT NETCONF Browser 下一步下一步操作即可。 3.连接设备 打开的时候选择Continue即可,无须license。 点击File->Connect ,如下: 输入设备用户名称: 这…

Netconf协议学习笔记

Netconf简介 网络配置协议NETCONF(Network Configuration Protocol)提供一套管理网络设备的机制,用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。通过NETCONF协议,网络设备可以提…