存储过程的使用(二)

news2024/11/18 7:23:26

目录

带 OUT 参数的存储过程

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

使用 EXEC 命令或者 PRINT执行含有 OUT参数的存储过程

使用 PL/SQL 块编辑程序调用含有 OUT 参数的存储过程

带 IN OUT 参数的存储过程

使用 IN OUT 参数,创建一个存储过程,计算传入数值的绝对值

使用 PL/SQL 块编辑程序调用含有 IN OUT参数的存储过程


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

带 OUT 参数的存储过程

上一部分介绍的是使用 IN参数可以向存储过程中的程序单元输入数据,在调用的时候提供参数值,被存储过程读取,

然而有的时候程序单元运行的结果可以传递到外部,例如查询数据表内容从程序中送到外部调用。

这个时候可以使用 OUT参数,在存储过程中定义这种参数时,关键字 OUT 写在参数名称之后。

下面通过具体范例来看一下如何使用。

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

分析:

这个示例在上一部分中是使用IN参数定义一个输入,然后定义局部变量,查询的结果是送到局部变量中,

在程序体中显示。现在我们就使用 OUT参数,将结果从程序中送到外部调用处。

存储过程代码如下图所示

如上所示,在存储过程中定义了两个参数,参数var empno 是 IN 参数,接收来自外部数值,参数var_ename 是 OUT参数,在程序内接受查询的结果,

然后通过这个参数传递到调用者。上面介绍了 OUT参数的使用,那么如何调用含有 OUT参数的存储过程呢?

它不像不含参数和包含IN 参数的存储过程,无法直接调用。

含有 OUT参数的存储过程在调用之前,必须定义一个相应类型的变量。

下面通过两种方法演示调用的方法

使用 EXEC 命令或者 PRINT执行含有 OUT参数的存储过程

在使用命令之前,必须使用 VARIABLE 关键字声明对应变量,来存储 OUT参数相应的返回值。

例如上面这个过程中有一个 OUT参数 var name,应先定义对应的变量,如下图所示。

如上图所示,调用的时候,使用“:”后面紧跟变量名。

可以看出,当输入的 IN 参数数值是“7389’的时候,提示“没有对应此编号的员工”;当输入的 IN 参数数值是“7369”的时候,

数据表中是存在这条记录的,因此返回所查询的结果。

但是我们看到程序并没有显示结果,而是显示“PL/SQL过程已成功完成”。

那么如何显示结果呢,可以使用如下方式。

SELECT :var_name FROM dual;

即可以显示出所返回 OUT参数对应变量的结果。

此外,还可以使用 PRINT命令打印变量的内容,如下所示

PRINT var_name

使用 PL/SQL 块编辑程序调用含有 OUT 参数的存储过程


因为存储过程中还有 OUT参数,因此调用之前要定义相应的变量,以接受调用后传送过来的运行结果。

程序代码及结果如下图所示。

如上图所示,在调用的 PL/SQL块中,定义了变量以获取返回的 OUT参数的查询结果,然后在程序中显示。

带 IN OUT 参数的存储过程

通过前面的范例可以看出,IN 参数接收来自外部调用的数值,在程序内部不能修改;而 OUT参数在存储过程中获得运行结果,

通过外部调用把结果送出,但不能接收来自外部的值。IN OUT参数同时具有 IN 参数和 OUT参数的特点,

既可以接收来自外部的值,也可以在存储过程中被修改,把获取的内容传递到外部调用的变量中。

下面通过一个范例来看一下它的使用。

使用 IN OUT 参数,创建一个存储过程,计算传入数值的绝对值


分析:

我们可以在存储过程中只定义一个参数,设置该参数为IN OUT 参数,接收来自外部调用的然后在存储过程中计算其绝对值并把结果放到该参数中。

程序代码及运行结果如下图所示

如上图所示,存储过程内容很简单,定义了一个IN OUT参数 var_num 变量,该变量接收来自外部的变量值,然后在存储过程中计算绝对值,再把结果返回到该参数中。

下面就介绍一下如何调用。

调用的方法也有两种,我们分别来看一下(1)使用 EXEC 命令或者 PRINT 执行含有 IN OUT 参数的存储过程同样,

在使用 EXEC 命令或者 PRINT之前,要定义一个变量以对应存储过程中的 IN OUT 参数。调用代码如下所示。

如上图所示,实现了在存储过程中计算传入数值的绝对值并通过同一参数把结果传回。

使用 PL/SQL 块编辑程序调用含有 IN OUT参数的存储过程

同样,在 PL/SQL块中要定义对应于 IN OUT参数的变量,然后再调用该存储过程。

程序代码如下图所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos修改启动项加载不同内核

一.背景: 虚拟机中有时需要编译好几个内核版本,make install后系统存在几个内核版本。需要再哪个内核上开发调试就启动特定的内核版本。这就需要修改启动时的内核版本,再物理机或虚拟机启动时可以上下键选择。但有时是docket云环境中或远程时…

葡萄书--图注意力网络

同质图中的注意力网络 注意力网络 GAT 核心就是对于每个顶点都计算其与邻居节点的注意力系数,通过注意力系数来聚合节点的特征,而非认为每个邻居节点的贡献程度都是相同的 单头注意力机制 为了计算注意力权重 eij​,我们首先将即节点特征…

移动Web学习09-响应式布局bootstrap案例开发

3、综合案例-AlloyTeam移动全端 准备工作 HTML 结构 <title>腾讯全端</title> <link rel"shortcut icon" href"favicon.ico" type"image/x-icon"> <!-- 层叠性&#xff1a;咱们的css 要 层叠 框架的 --> <link rel&…

JAVA 项目<果园之窗>_2

上节主要是理论流程&#xff0c;这次直接用实际例子过一遍整个流程 目标是向数据库添加一个员工 上述是前端页面&#xff0c;点击保存 浏览器向我后端发送http请求 后端这一部分专门接收employee请求 在这里对http post请求进行转换成JAVA数据&#xff0c;并处理数据&#xff…

安装zlmediakit和wvp-pro

通过docker安装zlmediakit&#xff0c;并单独启动wvp-pro.jar - zlmediakit安装 zlmediakit安装比较依赖环境和系统配置&#xff0c;所以这里直接使用docker的方式来安装。 docke pull拉取镜像 docker pull zlmediakit/zlmediakit:master使用下边命令先运行起来 sudo docke…

Linux 下安装MySQL 5.7与 8.0详情

官网资源下载 1、检查 /tmp 临时目录权限&#xff0c;将 /tmp 目录及所有子目录和文件的权限设置为所有用户可读、写和执行 [rootlocalhost ~]# chmod -R 777 /tmp2、安装前检查相关依赖 2.1、查找是否安装了 libaio 包。libaio 是 Linux 下异步 I/O 库的一个实现&#xff0…

华为ensp中rip和ospf路由重分发 原理及配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月20日20点21分 路由重分发&#xff08;Route Redistribution&#xff09;是指路由器将从一种路由协议学习到的路由信息&#xff0c;通过另一种路由协议通告出去的功…

汇舟问卷:国外问卷调查做题完整步骤细节展示

大家好&#xff0c;我是汇舟问卷。想要做国外问卷调查&#xff0c;搭建国外的环境是必不可少的&#xff0c;今天给大家讲解一下搭建国外环境的完整步骤&#xff0c;只要按照步骤一步步操作就一定能把环境搭建出来​。 一、安装辅助软件 需要先下载对应的软件进行安装&#xf…

项目七:学会使用python爬虫解析库(小白大成级)

前期我们学会了怎么使用python爬虫请求库和解析库的简单应用和了解&#xff0c;同时能够对爬虫有一个较为清晰的体系&#xff0c;毕竟简单的爬虫基本上都是请求数据——解析数据——存储数据的大概流程。 那么回忆一下&#xff0c;请求库我们学的是requests模块&#xff0c;解…

【数据结构练习题】二叉树(1)——1.相同的树2.另一颗树的子树3.翻转二叉树4.平衡二叉树5.对称二叉树

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ ♥♥♥♥♥上一章&#xff1a;队——1.用队实现栈2.用栈实现队♥♥♥♥♥ 文章目录 1.相同的树1.1题目描述1.2 思路分析1.3绘图分析1.4代码实现2.另一颗树的子树2.1问题描述2.2思路分析2.3绘图分析2.…

视觉SLAM学习打卡【11】-尾述

到目前为止&#xff0c;视觉SLAM14讲已经到了终章&#xff0c;历时一个半月&#xff0c;时间有限&#xff0c;有些地方挖掘的不够深入&#xff0c;只能在后续的学习中更进一步。接下来&#xff0c;会着手ORB-SLAM2的开源框架&#xff0c;同步学习C。 视觉SLAM学习打卡【11】-尾…

【linux】多路径|Multipath I/O 技术

目录 简略 详细 什么是多路径? Multipath安装与使用 安装 使用 Linux下multipath软件介绍 附录 配置文件说明 其他解 简略 略 详细 什么是多路径? 普通的电脑主机都是一个硬盘挂接到一个总线上&#xff0c;这里是一对一的关系。 而到了分布式环境&#xff0c;主机和存储网络连…

Linux使用Libevent库实现一个网页服务器---C语言程序

Web服务器 这一个库的实现 其他的知识都是这一个专栏里面的文章 实际使用 编译的时候需要有一个libevent库 gcc httpserv.c -o httpserv -levent实际使用的时候需要指定端口以及共享的目录 ./httpserv 80 .这一个函数会吧这一个文件夹下面的所有文件共享出去 实际的效果, 这…

Matlab之空间坐标系绘制平面图形

在空间直角坐标系中&#xff0c;绘制指定平面方程的图形 版本说明&#xff1a; 20240413_V1.01&#xff1a;更正代码错误&#xff0c;并修改输入参数类型&#xff08;测试用例得修改&#xff09; 20240413_V1.00&#xff1a;初始版本 一、平面方程 基本形式为&#xff1a;A…

[阅读笔记29][AgentStudio]A Toolkit for Building General Virtual Agents

这篇论文是24年3月提交的&#xff0c;提出了一个用于agent开发的全流程工具包。 作者提到目前agent开发主要有两个阻碍&#xff0c;一个是缺乏软件基础&#xff0c;另一个是缺乏在真实世界场景中进行评估。针对这两个阻碍&#xff0c;作者涉及了一个开发工具包&#xff0c;包括…

中颖51芯片学习8. ADC模数转换

中颖51芯片学习8. ADC模数转换 一、ADC工作原理简介1. 概念2. ADC实现方式3. 基准电压 二、中颖芯片ADC功能介绍1. 中颖芯片ADC特性2. ADC触发源&#xff08;1&#xff09;**软件触发**&#xff08;2&#xff09;**TIMER4定时器触发**&#xff08;3&#xff09;**外部中断2触发…

2024第八届图像、信号处理和通信国际会议 (ICISPC 2024)即将召开!

2024第八届图像、信号处理和通信国际会议 &#xff08;ICISPC 2024&#xff09;将于2024年7月19-21日在日本福冈举行。启迪思维&#xff0c;引领未来&#xff0c;ICISPC 2024的召开&#xff0c;旨在全球专家学者共襄盛举&#xff0c;聚焦图像信号&#xff0c;在图像中寻找美&am…

通用大模型研究重点之五:llama family

LLAMA Family decoder-only类型 LLaMA&#xff08;Large Language Model AI&#xff09;在4月18日公布旗下最大模型LLAMA3&#xff0c;参数高达4000亿。目前meta已经开源了80亿和700亿版本模型&#xff0c;主要升级是多模态、长文本方面工作。 模型特点&#xff1a;采用标准的…

企业监管工具:为何如此重要?

随着通信技术的发展&#xff0c;员工使用微信等即时通讯工具来进行工作沟通已经成为了常态。为了帮助企业有效地监管员工的工作微信使用情况&#xff0c;微信管理系统应运而生。 下面就一起来看看&#xff0c;它都有哪些功能吧&#xff01; 1、历史消息&#xff1a;洞察员工聊…

VMware设置Centos7静态ip

1、获取网段&#xff0c;子网掩码和网关 到此获取到的信息&#xff1a; 网段&#xff1a;192.168.204.128 ~ 192.168.204.254 子网掩码&#xff1a;255.255.255.0 网关IP&#xff1a;192.168.204.2 2、修改Centos系统的网络配置 使用命令vim /etc/sysconfig/network-scripts/…