存储过程的使用(一)

server/2024/9/20 13:24:11/ 标签: 数据库, sql, oracle, 开发语言, java

目录

不带参数的存储过程

创建一个存储过程,向数据表 dept 中插入一条记录

带 IN 参数的存储过程

在存储过程中接受来自外部的数值,在存储过程中判断该数值是否大于零并显示

输入一个编号,查询数据表emp中是否有这个编号,如果有则显示对应员工姓名,如果没有,则提示没有对应员工

创建一个存储过程,向数据表 dept 中插入一条记录


Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645


不带参数的存储过程

前面已经介绍了存储过程的创建以及调用,下面就通过范例来学习存储过程的使用。
不带参数的存储过程相比起来较为简单,在存储过程中执行某一指定动作序列。下面看一个范例。

创建一个存储过程,向数据表 dept 中插入一条记录

分析:

这个范例不需要参数,只需要在存储过程体中添加一个插入语句即可。过程创建代码如下图

如上图所示。存储过程 pro_tidata 成功创建,尽管过程已经成功创建,但是并没有执行。如果想要执行这个过程,

执行代码如下图所示

即使用 EXEC 命令执行该过程。如前所述,也可以在 PL/SQL块中直接调用,

如下图所示。

带 IN 参数的存储过程

使用 IN 参数可以向存储过程中的程序单元输入数据,在调用的时候提供参数值,被存储过程读取。
这种模式是默认的参数模式。下面就看一个范例。

在存储过程中接受来自外部的数值,在存储过程中判断该数值是否大于零并显示

分析:

这个存储过程可以使用IN参数接受来自外部的数值,进而在存储过程中进行判断。

过程代码如下图所示。

下面来测试一下存储过程是否可用,使用EXEC命令,如下图所示

我们可以看出,存储过程接受外面调用传来的值,进行判断,实现最终要求。

输入一个编号,查询数据表emp中是否有这个编号,如果有则显示对应员工姓名,如果没有,则提示没有对应员工

分析:

输入编号可以对应一个 IN 参数,然后再存储过程中使用 WHERE 语句查询,使用 INTO 子句把结果赋予一个变量。

存储过程如下图所示。

存储过程创建后,下面测试一下是否符合要求,仍然使用EXEC 命令执行,如下图所示。

如图所示,当输入编号为“7369”时,可以在数据表中找到对应记录,并显示结果;如果查询编号为“7320”时,此时数据表中没有对应记录,则显示无此员工。

前面两个例子中 IN 参数只有一个,下面看一个有多个 IN 参数的情况。可以使用无参数存储过程一节的范例。

创建一个存储过程,向数据表 dept 中插入一条记录

分析:

我们这次使用IN参数来实现这个范例,可以定义3个IN参数,分别接收来自外部调用的值。
存储过程如下图所示。

过程创建后,可以通过调用向过程中传递参数,如下图所示。

调用的时候,需要注意,调用时参数的书写顺序应该与存储过程中 IN 参数的顺序一样,

如上图所示,

“22”对应“var deptno”,“MANAGER”对应“var ename”,“BEIJING”对应“var_loc”。如果顺序不一样,应明确指明,例如上面的指令可以修改为如下形式

sql">EXEC pro_add(var_name=>'MANAGER',var_deptno=>22,var_oc=>'BEIING')


http://www.ppmy.cn/server/2798.html

相关文章

OpenHarmony开发——CMake方式组织编译的库移植

概述 本文为OpenHarmony开发者提供一些组织编译形式比较常见(CMakeLists、Makefile)的三方库的移植指南,该指南当前仅适用于Hi3516DV300和Hi3518EV300两个平台,文中着重介绍各编译组织方式下工具链的设置方法以及如何将该库的编译…

一篇文章厘清C#中的lambda表达式

一篇文章厘清C#中的lambda表达式 链接: 源码 说C#的匿名函数,就要先说一下匿名函数. Lambda表达式 1 lambda表达式演变史1. **C# 1.0 (2002)**2. **C# 2.0 (2005)**3. **C# 3.0 (2007)**4. **C# 4.0及以后** 2 lambda表达式使用方法1 **基本语法**2 **使用场景和示例****作为…

计算机网络——应用层(3)电子邮件

电子邮件 1、概述: 电子邮件是使用电子设备交换的邮件及其方法。 优点:使用方便,传递迅速,费用低廉,可传送多种信息 重要标准: 简单邮件发送协议:SMTP互联网文本报文格式通用互联网邮件扩充…

【python实战】-- 按指定字符生成密码字典并测试打开word

系列文章目录 文章目录 系列文章目录前言一、生成密码字典1.python程序 二、测试打开Word1.python程序 总结 前言 一、生成密码字典 1.python程序 代码如下(示例): import string# 定义密码字符集,这里以小写字母为例 #all_char…

pytorch环境配置踩坑记录

一、问题1 1.执行命令 conda create -n pytorch python3.62.报错如下 Solving environment: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/msys2/noarch/repodata.json.bz2> Elapsed: -An HTTP error occurred when tr…

可视化ETL解决方案:Apache NiFi、DataX(加上DataX-Web)、Kettle这3个解决方案对比

1.Apache NiFi&#xff1a; Apache NiFi是一个易于使用、功能强大的可视化ETL工具&#xff0c;它提供了一套直观的图形界面&#xff0c;让用户可以轻松地设计、管理和监控数据流。NiFi支持多种数据源和目标系统&#xff0c;具有强大的数据处理能力&#xff0c;如数据过滤、转换…

Idea与Maven版本不一致问题

Idea拉取Jar包&#xff0c;报Unable to import maven project: See logs for details 查看日志信息No implementation for org.apache.maven.model.path.PathTranslator was bound 具体错误详情&#xff1a; IDEA执行Maven报错 Unable to import maven project: See logs f…

使用Docker搭建一主二从的redis集群

文章目录 一、根据基础镜像构建三个docker容器二、构建master机三、配置slave机四、测试 本文使用 主机指代 物理机、 master机指代“一主二从”中的 一主&#xff0c; slave机指代“一主二从”中的 二从 一、根据基础镜像构建三个docker容器 根据本文第一章&#xff08…

MIMO(多天线)通信的四种译码算法

目录 一. 介绍 二. 极大似然译码 三. 破零译码算法 四. 最小均方误差算法 五. 球形译码 一. 介绍 发射天线数记为Mt&#xff0c;接收天线数记为Mr。由此发射信号x为向量&#xff1a; 接受信号y为向量&#xff1a; 信道H为矩阵&#xff1a; 利用n代表噪声向量&#xff0c;…

【Web】2022DASCTF Apr X FATE 防疫挑战赛 题解(全)

目录 warmup-php soeasy_php warmup-java warmup-php spl_autoload_register函数实现了当程序遇到调用没有定义过的函数时&#xff0c;会去找./class/函数名.php路径下的php文件&#xff0c;并把它包含在程序中。 拿到附件拖进Seay里自动审计一下 显然利用终点为evaluateExp…

探索 IntelliJ IDEA 2024.1最新变化:全面升级助力编码效率

探索 IntelliJ IDEA 2024.1最新变化&#xff1a;全面升级助力编码效率 文章目录 探索 IntelliJ IDEA 2024.1最新变化&#xff1a;全面升级助力编码效率摘要引言 IntelliJ IDEA 2024.1 最新变化关键亮点全行代码补全 Ultimate对 Java 22 功能的支持新终端 Beta编辑器中的粘性行 …

用html写文本变形动画

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文本变形动画</title><link rel"stylesheet" href"./style.css"> </head> <body> <!-- 两个文本部分…

oracle 19c数据库W00n进程使用很多PGA内存资源的分析

今天&#xff0c;客户反馈测试环境的数据库PGA资源不足&#xff0c;报错ORA-04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT&#xff1b;分析是多个W00n进程使用大量PGA-触发了BUG&#xff0c;对应解决办法就是打补丁。&#xff08;民间办法就是KILL进程、重启数据库&…

微服务架构中的业务解耦设计

目录 业务解耦的原则 单一责任原则 松耦合原则 业务解耦的实现方法 业务解耦的优势 微服务架构中的业务解耦设计案例 背景 业务解耦设计 服务拆分 商品服务 订单服务 用户服务 支付服务 物流服务 通信机制 数据一致性 具体实现 商品服务 订单服务 用户服务…

锂电池寿命预测 | Matlab基于GRU门控循环单元的锂电池寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池寿命预测 | Matlab基于GRU门控循环单元的锂电池寿命预测 Matlab基于GRU的锂电池剩余寿命预测 基于GRU的锂电池剩余寿命预测&#xff08;单变量&#xff09; 运行环境Matlab2020及以上 锂电池的剩余寿命预测是…

SVN修改已提交版本的注释

目录 一、需求分析 二、问题分析 三、解决办法 一、需求分析 ​开发过程中&#xff0c;在SVN提交文件后&#xff0c;发现注释写的不完整或不够明确&#xff0c;想再修改之前的注释文字​。 使用环境&#xff1a; SVN服务器操作系统&#xff1a;Ubuntu 20.04.6 LTS SVN版本&…

MongoDB的go SDK使用集锦

在上一章解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用介绍了如何使用mongo shell操作mongo数据库&#xff0c;接下来介绍如何使用sdk来操作数据库&#xff0c;这里以go语言为例&#xff0c;其他语言请查看源文档mongo docs Quick Start 内置数据结构 MongoDB是存…

Java 变得越来越像 Rust?

随着编程技术的增强和复杂性的提升&#xff0c;许多编程语言也纷纷效仿&#xff0c;Java 也不例外。 另一边&#xff0c;尽管社区内部问题重重&#xff0c;但 Rust 仍逐年获得开发人员的喜爱。这背后都是有原因的&#xff1a;Rust 的编译器让开发人员避免了各种问题。编译器对…

【MIT6.824】lab2C-persistence, lab2D-log compaction 实现笔记

引言 lab2C的实验要求如下 Complete the functions persist() and readPersist() in raft.go by adding code to save and restore persistent state. You will need to encode (or “serialize”) the state as an array of bytes in order to pass it to the Persister. Us…

设计模式系列:适配器模式

简介 适配器模式&#xff08;Adapter Pattern&#xff09;又称为变压器模式&#xff0c;它是一种结构型设计模式。适配器模式的目的是将一个类的接口转换成客户端所期望的另一种接口&#xff0c;从而使原本因接口不匹配而不能一起工作的两个类能够一起工作。 适配器模式有两种…