【Oracle数据库】存储函数

Oracle数据库 存储函数 文章目录一、存储函数二、存储函数的语法结构三、什么时候使用存储函数/存储过程四、存储函数使用案例案例1:查指定员工的工资案例2:查指定员工的年薪案例3:查指定部门的平均工资 一、存储函数 Oracle中的存储函数,和系统内的函数类似,可以像调用系统函数一样调用存储函数。它与存储过程的唯一区别就是存储过程没有return返回值,存储函数可以与存储过程互换,存储函数可以在存储过程中调用。 函数(function)为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个return子句,用 阅读详情

作用和存储过程一致,原则上有一个返回值的时候,用存储函数,否则其他情况都用存储过程
存储过程是create procedures
存储函数是create function(函数),且必须要有返回值,return

无参

  • 创建无参存储函数
create or replace function func1
return varchar2

is
begin
       return 'hello world!';
end;

create or replace function func11
return varchar2
is
begin
  return 'hello   world!';
end;
  • 执行无参存储函数
begin
dbms_output.put_line(func1);
end;

begin 
  dbms_output.put_line(func11);
end;

输入参数

– 创建输入参数的存储函数背

  • 根据部门编号,返回部门的总工资
create or replace function func2
(v_deptno in number)
return number
is
       v_sumsal number;
begin
       select sum(sal) into v_sumsal from emp where deptno = v_deptno;
       return v_sumsal;
exception
       when no_data_found then 
       dbms_output.put_line('没有此部门');
       when others then 
       dbms_output.put_line('sqlerro');
end;
  • 执行输入参数的存储函数
begin
dbms_output.put_line(func2(&no));
end;


begin
  dbms_output.put_line(func02(&no));
end;

输出参数

– 创建输出参数的存储函数

  • 根据员工的工号输出员工的姓名和工资,并且返回员工的年收入
create or replace function func3
(v_empno in emp.empno%type,v_ename out emp.ename%type ,v_sal out emp.sal%type )
return number
is

       v_sumsal number;
begin
       select ename,sal,(sal+nvl(comm,0))*12 into v_ename,v_sal,v_sumsal from emp where empno = v_empno;
       return v_sumsal;
exception
       when no_data_found then
       dbms_output.put_line('没有找到部门编号');
       when others then
       dbms_output.put_line(sqlerrm);
       
end;
  • 执行输出参数的存储函数
declare

v_ename emp.ename%type;
v_sal emp.sal%type;
v_sumsal number;

begin

v_sumsal := func3(&empno,v_ename,v_sal);
dbms_output.put_line(v_sumsal||'====='||v_sal||'===='||v_ename);

end;

输入输出

–创建带有输入输出单数的存储函数

  • 求两个数的平方和,并输出两个数的平方
create or replace function func04
(n1 in out number,n2 in out number)
return number
is
begin
  n1:=n1*n1;
  n2:=n2*n2;
  /*调用func04返回的结果*/
  return n1+n2;
end;
  • 执行输入输出参数的存储函数
declare
n1 number:=&n1;
n2 number:=&n2;
nsum number;
begin
  /*给nsum赋值func04*/
  nsum:=func04(n1,n2);
  dbms_output.put_line(nsum||'===='||n1||'===='||n2);
end;

删除

–删除存储函数

  • 语法:drop function + 存储过程名
    drop function v_func;
gm/Id 设计方法 本文介绍gm/Id方法的具体实现。 阅读详情

相关推荐

在 Ubuntu 上安装和配置 PostgreSQL 实录

本文介绍了在Ubuntu系统上安装和配置PostgreSQL数据库的完整步骤。主要内容包括:1)通过官方源或PPA源安装最新版本;2)修改配置文件(postgresql.conf和pg_hba.conf)以允许远程访问;3)设置postgres用户密码;4)创建新用户并配置权限;5)防火墙设置和重启服务;6)验证安装和远程连接方法。文章提供了详细的命令行操作指导,帮助用户完成从安装到远程访问的全部配置过程。

qq_58168857的博客 1208

oracle学习笔记_典型函数

–1.根据部门号查询部门名称,使用函数 查询人员姓名及部门名称 create or replace function f_get_name_by_deptno(t_deptno in varchar2) return varchar2 is v_dept_name dept.dname%type; begin select d.dname into v_dept_name from dept d ...

DYourName的博客 531

树莓派c语言串口通讯程序

在网上搜了很多关于树莓派串口通讯的例子,但是都是用python写的,虽然python很有名,而且最近也在学习这门语言, 但是还是想用c语言实现一下,因为需要用到整套系统里,其他内容都是用c语言写的。但是网上没有找打现成的。 还好,之前做过天嵌2440开发板的串口程序(参照天嵌工程师提供的代码),发现串口程序其实是通用的, 驱动层屏蔽了硬件细节,个人猜测,几乎所有移植好的系统的串口,都可以用一

realank的专栏 1万+

ORACLE的一些函数、存储过程范例

1. F_GETDIGISTSBYRST CREATE OR REPLACE FUNCTION F_GETDIGISTSBYRST(RSTID IN INTEGER) RETURN VARCHAR2 IS RESULT VARCHAR2(1000); CURSOR C_JOB IS SELECT D.SLDIGISTTABLE_SELECT, D.SLDIGISTTABLE_N

semi_zhou的专栏 1178

飞控算法-姿态解算之互补滤波

飞控乱入之姿态解算 姿态解算是通过读取各个传感器的数据进行融合最终得到当前飞行器的姿态,姿态通常用Euler角(Roll-Pitch-Yaw)来表示 姿态解算框架 姿态解算的数据源可来自于陀螺仪或加速度计,他们分别都可以得到当前姿态,但实际上他们都有各自的传感器性能的优缺点,需要取长补短,进行数据融合才能得到真实的姿态,这种方法简称 互补滤波 算法 传感器特性 互补滤波 姿态解...

GoolyOh的专栏 1万+

高创伺服的龙门调试经历2

摘要:本文介绍了高创伺服在龙门控制中的配置方法。首先通过ServoStudio2连接驱动器并命名区分主从轴(MASTER/DIFF),然后设置接口模式、23位编码器参数及极限位置。重点说明龙门模式的三项关键参数设置(gantryfbenmode=1、gantrymode=1/2)和连线状态确认。建议单轴自动整定后调整从轴增益(如0.2),并强调带刹车电机的同步控制要点:刹车线需接同一继电器由主轴控制,避免位置偏差。

wzz418550729的博客 915

oracle存储过程调用2

/**    获取给定原子时对应的历法时间   **/   function getCalendarDate(       calendarNo in varchar, --历法编号(必须是数字),比如是零宽字符串就对应历法time_term,'1'对应历法time_term1       curTime in number, --当前原子时(距离1979年1月1号0时0分0秒的毫秒数)

云智禅师的专栏 713

【毕设级教程】从0到1实现基于YOLOv8的xView卫星图像目标检测系统(含UI界面,助力遥感智能毕设)

本文基于YOLOv8模型设计了一个面向xView卫星图像的目标检测系统。首先对xView数据集进行了格式转换处理,将原始多边形标注转换为YOLO格式的边界框标注。随后通过配置YOLOv8模型参数完成训练,实现了对卫星图像中建筑、车辆等多类目标的准确识别。为提高系统交互性,采用PyQt开发了可视化界面,支持图像选择、实时检测和结果展示功能。整个系统兼顾学术价值和实用价值,为遥感领域的自动化目标检测提供了可行方案。

m0_64661770的博客 130

ORACLE函数发生异常后的执行顺序

问题如下 函数1 create or replace function 函数名( 参数1 in varchar2, 参数2 in varchar )return varchar2 is 返回值 varchar2(3000); begin ... exception --异常处理 when others then v_result := ' '; return v_result; end 函数名; 函数2 ...

伶生的博客 712

通信算法之320:DJI无人机云哨--信息包类型

大疆DJI无人机的云哨信息包主要分为四种类型:1)含经纬度位置、型号及序列号的完整数据包;2)仅含序列号的简化数据包;3)完全加密的数据包;4)加密密钥包。这些信息包格式不同,解析方式和应用场景也各异。如需更详细的技术资料,可联系作者获取。

leegang12的专栏 761

Error response from daemon: Get “https://index.docker.io/v1/search?q=nginx&n=25“:

在使用docker seach 命令搜索镜像的时候遇到这个错误,docker pull是可以正常下载镜像的,关于这个问题,本文提供解决方案,完全可行。

猿小白的博客 1万+

使用oracle function和存储过程返回单个值

1 function 返回值 function get_link_coalingid(p_id in varchar2 ) return varchar2 is r_lid varchar2(200); begin select t.link_coalingid into r_lid from dis_w_pack...

iteye_7346的博客 382

【人工智能之深度学习】12. BERT微调实战:医疗文本分类的领域自适应技巧与工业级实现

摘要:医疗文本分类是自然语言处理在医疗健康领域的核心应用,可辅助疾病诊断、病历结构化和医疗质量监控。然而,医疗文本的专业术语密集、实体关系复杂及数据长尾分布等特性,导致通用BERT模型性能受限。本文系统阐述医疗文本分类的领域自适应技术,从理论原理到工业级实现展开全流程讲解。首先分析医疗文本的独特属性及技术挑战;随后详解领域继续预训练、适配器微调、对抗训练等核心技术的数学原理;构建包含数据预处理、模型优化、隐私保护的完整实战架构;通过疾病分类、情感分析、事件检测三大案例验证技术有效性。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1006

oracle数据库存储过程简述,Oracle数据库存储过程和存储函数

Oracle数据库存储过程和存储函数Oracle数据库存储过程和存储函数指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。存储过程没有返回值。存储函数有返回值创建存储过程用CREATE PROCEDURE命令建立存储过程和存储函数。语法:create [or replace] PROCEDURE过程名(参数列表)ASPLSQL子程序体;运动会加油稿存储过程示例:为指定的职工在原工资的...

weixin_30575925的博客 327

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

oracle数据库存储函数,[数据库]存储过程,存储函数(Oracle)

[数据库]存储过程,存储函数(Oracle)02016-06-20 01:00:06存储过程和存储函数指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。存储过程和存储函数的区别?存储函数:可以通过return 语句返回函数值。存储过程:不能除此之外我们可以认为他们是完全一样的。存储过程1、创建存储过程用create procedure命令简历存储过程。语法:create [or re...

weixin_42496830的博客 215

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

oracle据库存储包,[数据库]oracle存储过程、函数、序列、包

[数据库]oracle存储过程、函数、序列、包0 2016-07-02 19:00:05一. 存储过程1. 语法create or replace procedure procedureName(seqName varchar2)is /*声明变量*/ n number(10); cursor cur is select * from tableName; /*用来放置游标中...

weixin_30010599的博客 258

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

oracle数据库存储函数,Oracle数据库存储过程

一、定义所谓存储过程,就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。使用的时候,用户通过指定已经定义的存储过程名字并给相应的存储过程参数来调用并执行它,从而完成一个或者一系列的数据库操作。存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。存储过程和函数也是一种pl/sql块,是存入数据库的pl/sql...

weixin_42124497的博客 341

12、oracle数据库下的存储过程和函数

存储过程和函数是一种操作块,用来流程化、整体化处理业务逻辑的数据库操作方式。我理解的是相当于java开发语言中方法的概念,存储过程和函数的区别在于函数可以有返回值,而过程没有返回值。

chaizepeng的博客 376

oracle数据库存储函数,Oracle怎么导出存储过程

昨天使用exp可以导出oracle数据库表,今天说下怎么导出存储过程。首先看下使用pl/sql怎么导出存储过程。导出步骤:tools-->Export User Objects...-->选择存储过程(Procedure,Function,Trigger,Type,Type Body,Package)等-->在Output File选择导出位置-->Export使用上述步骤...

weixin_30140317的博客 986

oracle访问数据库,调用存储过程,存储函数

public class OracleDemo { @Test public void javaCallOracle() throws Exception { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connection = DriverManager.getCon...

qq_40790042的博客 634

Oracle数据库:PL/SQL中的存储过程与函数

一、存储过程与函数概述 关于存储过程与函数概述,包含一下知识点: 1、PL/SQL块分类 (1)、PL/SQL块:匿名块、命名块 匿名块:不保存在数据库中,没有名称,不可以重复调用 命名块:保存在数据库中,有名称,可以重复调用 命名块:存储过程、函数、触发器、包 2、存储过程与函数的概念 存储过程与函数:都是一个子程序,完成一定的功能 存储过程:没有返回值,可以独立调用 函数:必须包含一个返回值,...

Vitality_Data的博客 293

导出Oracle数据库中的表结构、存储过程、函数等

导出Oracle数据库中的表结构、存储过程、函数等 package com.demo.email.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.sql.Clob; import java.sql.Connection; import jav...

... 2614

Oracle编程(其五):idea调用Oracle数据库环境搭建、java调用存储函数及存储过程

Java调用存储过程 环境搭建:导入依赖jar包 pom.xml <dependencies> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.4.0</version>

fanzhe的博客 946

Oracle 数据库如何创建并使用存储过程与调用函数

Oracle 如何创建并使用存储过程与调用函数 一、oracle存储过程的创建语法与示例 1、基本语法 create or replace procedure 存储过程名称 ( 参数别名 in 参数类型,(in为入参) 参数别名 in 参数类型,(in为入参) 参数别名 in 参数类型,(in为入参) 参数别名 out 参数类型(out为出参) ) as –定义变量– –变量名 变量数据类型;如: – numCount integer; begin –处理方法- end; 2、示例 create or re

小谢同学的博客 1194

oracle数据库中函数和存储过程的区别

oracle数据库中函数和存储过程的区别

We get old too soon and wise too late 1263

oracle数据库对象--存储函数和存储过程

存储过程(PROCEDURE),存储函数(FUNCTION) 通过之前两篇文章对pl/sql程序的简单介绍,现在就可以稳稳的学习重点了,存储过程和存储函数,这个才是我们项目开发中真正要用到的,前面所学的都是为了这个做铺垫的。 1.什么是存储过程和存储函数? oracle允许将pl/sql程序块存储在数据库中,并在任何地方可以调用他,这样的程序块我们就成为存储过程或存储函数,过程和函数是pl/

菜鸟一枚 1782
上一篇: 【Oracle数据库】存储过程
下一篇: 【python】元组
Lemon_Can
博客等级 码龄6年 6粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值