第12章 存储过程
Mysql数据库及应用(专,2020春)_第12章作业0

答案:BD
13.12-21 、下面关于参数类型的说明正确的是:
A.使用OUT 类型参数可以将存储过程的中值传递回调用他的过程。
B.使用INOUT类型的参数可以将数据传递到存储过程中。
C.使用IN 类型的参数可以将数据传递到存储过程中。
D.使用INOUT类型参数可以将存储过程的中值传递回调用他的过程。
答案:正确
25.12-19 、触发器也可以传递输入和输出参数。
答案:错误
A.OPEN curs_teachers;
B.CALL curs_teachers;
C.CRAETE curs_teachers;
D.DECLARE curs_teachers;
答案:A
8.12-8 、为了增强程序处理问题的能力,避免程序异常停止,可以采用:~
A.自定义变量
B.自定义游标处理程序
试卷总分:100 得分:96
1.12-1 、在一个表中最多能建立 个触发器。
A.2
B.6
C.多
D.1
答案:B
2.12-2 、游标以 的方式集中处理数据,使用游标可以控制对特定行的操作,因而可以提供更多的灵活性。~
A.逐列
B.整体
C.结果集
D.逐行
答案:D
3.12-3 、( )是一组预先写好的能实现某种功能的T-SQL程序代码,指定一个名称并经过编译后将其保存在MySQL服务器中。
A.NEW
B.FIRST
C.END
D.OLD
答案:AC
18.12-12 、游标(Cursor)是指向查询结果集的一个指针,它是通过定义语句与一条UPDATE语句相关联的一组SQL语句,游标使得用户可以逐行访问UPDATE查询语句返回的结果集合,并可以对不同行做不同的操作。
第十二章

4
触发器简介
由于触发器在数据修改时自动触发, 由于触发器在数据修改时自动触发,因此触发器根据数据的修改操作可 分为INSERT UPDATE,DELETE三种触发器类型 INSERT触发器在向数 INSERT, 三种触发器类型. 分为INSERT,UPDATE,DELETE三种触发器类型.INSERT触发器在向数 据表中插入数据时触发;UPDATE触发器在表中数据被更新时被触发 触发器在表中数据被更新时被触发; 据表中插入数据时触发;UPDATE触发器在表中数据被更新时被触发; DELETE触发器会被数据表中的数据删除操作触发执行 触发器会被数据表中的数据删除操作触发执行. DELETE触发器会被数据表中的数据删除操作触发执行. 另外,触发器根据执行类型还可被分为AFTER触发器和INSTEAD OF触 另外,触发器根据执行类型还可被分为AFTER触发器和INSTEAD OF触 AFTER触发器和 发器: AFTER触发器只有在激活它的语句 INSERT,UPDATE, 触发器只有在激活它的语句( 发器: AFTER触发器只有在激活它的语句(INSERT,UPDATE,DELETE 操作)执行完后才被启用.例如, UPDATE语句中 只有在UPDATE 语句中, UPDATE语句 操作)执行完后才被启用.例如,在UPDATE语句中,只有在UPDATE语句 执行完之后,触发器才被激活执行.如果UPDATE语句失败, AFTER触发 UPDATE语句失败 执行完之后,触发器才被激活执行.如果UPDATE语句失败,则AFTER触发 器不会被激活.在同一个数据表中可以创建多个AFTER触发器. AFTER触发器 器不会被激活.在同一个数据表中可以创建多个AFTER触发器. INSTEAD OF触发器将在数据变动之前被触发,顾名思义,它将取代变 OF触发器将在数据变动之前被触发,顾名思义, 触发器将在数据变动之前被触发 动数据的操作(INSERT,UPDATE,DELETE操作).例如当对一个具有 操作). 动数据的操作(INSERT,UPDATE,DELETE操作).例如当对一个具有 DELETE类型触发器的数据表进行DELETE操作时 类型触发器的数据表进行DELETE操作时, INSTEAD OF DELETE类型触发器的数据表进行DELETE操作时,DELETE 将不会被执行,该触发器中的语句将取代DELETE操作而被执行( DELETE操作而被执行 将不会被执行,该触发器中的语句将取代DELETE操作而被执行(也许这个 触发器中的语句要做的操作却是对数据表中的数据进行INSERT).在同一 INSERT). 触发器中的语句要做的操作却是对数据表中的数据进行INSERT).在同一 个数据表中,每个INSERT,UPDATE或DELETE语句最多可以定义一个 个数据表中,每个INSERT,UPDATE或DELETE语句最多可以定义一个 INSERT OF触发器 触发器. INSTEAD OF触发器.
2024年作业场所安全使用化学品规定

2024年作业场所安全使用化学品规定第一章总则第一条为规范作业场所中化学品的存储、使用和处理, 保障员工的生命安全和身体健康, 根据国家有关法律法规, 制定本规定。
第二条本规定适用于各类作业场所中的化学品的存储、使用和处理。
第三条本规定所称化学品, 是指化学性质较为稳定, 能通过化学反应而产生危险的物质, 包括但不限于有毒物质、易燃物质、易爆物质等。
第四条作业场所应成立安全使用化学品的管理机构, 负责化学品的管理和安全监督。
第五条作业场所应根据其生产经营特点, 制定相应的化学品安全管理办法, 并组织实施。
第二章化学品的储存第六条作业场所应按照化学品的性质和特点, 合理划分存储区域。
不同种类的化学品应分别存放, 严禁混放。
第七条存储化学品的仓库应符合防火、防爆、防毒和通风的要求, 必要时应配备专用的消防设施。
第八条存储区域应设置明显的标志, 标明储存的化学品种类和相关的安全提示。
第九条化学品的存储应按照包装标识上的要求进行, 不得将化学品直接倒入其他容器、袋子或水桶中。
第十条存储过程中, 应定期检查化学品的包装是否完好, 如发现包装破损、泄漏等安全隐患, 应及时处理和更换容器。
第三章化学品的使用第十一条使用化学品的操作人员应经过专门培训, 具备一定的专业知识和技能, 能够正确识别、处理和处置化学品。
第十二条使用化学品时, 应佩戴个人防护装备, 包括但不限于防护眼镜、防护口罩、防护手套等。
第十三条在使用化学品的过程中, 应严格遵守操作规程, 不得违反标识和说明书的要求, 不得私自调整化学品的配制比例。
第十四条使用化学品时应保持工作环境干燥、通风良好, 不得与明火或其他易燃物质接触。
第十五条在使用化学品时, 应及时清理工作台面和周围的化学品残留物, 避免交叉污染。
第十六条使用化学品的容器和器材应定期检查和清洗, 严禁混用不同种类的化学品容器。
第四章化学品的处理第十七条作业场所应建立废弃化学品的收集、储存和处置制度, 确保废弃化学品的安全处理和环境保护。
数据库应用技术(第二版)习题参考答案

第一章:1、订单管理系统的功能有哪些?答:订单管理系统的功能主要有客户查询商品信息、客户预订商品并提交订单、销售人员处理客户的订单信息、销售人员管理商品信息、客户信息等。
2、说明ER模型的作用?答:ER模型(实体关系模型)是描述概念世界,建立概念世界的工具,ER方法把管理系统所要描述的问题划分为单个的实体,通过实体间的联系实现有效、自然地模拟现实世界。
3、什么是关系模型?关系的完整性包括哪些内容?答:关系模型就是用二维表格结构来表示实体及实体之间联系的模型,关系模型包括四类完整性:域完整性、实体完整性、参照完整性和用户定义的完整性。
4、按照功能,SQL语言分为哪4部分?答:按照功能,SQL语言分为数据定义语言、查询语言、数据操纵语言、数据控制语言。
5、规范化范式是依据什么来划分的?它与一事一地的原则有什么联系?答:规范化范式根据一个关系满足数据依赖的程度不同,可规范化为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
规范化范式遵循一事一地的原则,将描述一个独立事物的属性组成一个关系。
第二章:1、SQL Server 2005有哪些新增特性?答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。
企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。
2、SQL Server 2005安装的软件和硬件环境是什么?答:SQL Server 2005安装的软件和硬件环境参见教材表2-3、2-4、2-5、2-6。
3、SQL Server 2005有哪些版本?有哪些服务组件?答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。
《SQL Server 2000》网络课程同步练习与模拟试题

同步练习题第1章数据库基础知识一、单项选择题1. 通常所说的数据库系统(DBS)、数据库管理系统(DBMS)、和数据库(DB)三者之间的关系是A. DBMS包含DB和DBSB. DB包含DBS和DBMSC. DBS包含DB和DBMSD.三者无关答案:A2.数据是信息的载体,信息是数据的A. 符号化表示B. 载体C. 内涵D. 抽象答案:C3. 下列说法不正确的是A. 数据库避免了一切数据重复B. 数据库减少了数据冗余C. 数据库数据可为经DBA认可的用户共享D. 控制冗余可确保数据的一致性答案:A4.在数据库中,产生数据不一致的根本原因是A. 没有严格保护数据B. 数据存储量太大C. 数据间联系弱D. 数据冗余答案:D5.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为A. 数据定义功能B. 数据管理功能C. 数据操纵功能D. 数据控制功能答案:C6.E-R模型是数据库设计的工具之一,它一般适用于建立数据库的A. 概念模型B. 结构模型C. 物理模型D. 逻辑模型答案:A7. 当实体中有多个属性可作为键而选定其中一个时,称为该实体的A. 外部键B. 候选键C. 主键D. 主属性答案:C8. 如某属性虽非该实体主键,却是另一实体的主键,称此属性为A. 外部键B. 候选键C. 主键D. 主属性答案:A9.自然连接是构成新关系的有效方法。
一般情况下,当对关系R和S使用自然联接时,要求R和S含有一个或多个共有的A. 元组B.行C. 记录D.属性答案:D10.关系模型中的关系模式至少是A.1NF B.2NFC.3NF D.BCNF答案:A11.候选关键字中的属性称为A.非主属性B.主属性C.复合属性D.关键属性答案:B12.关系模式中各级模式之间的关系为A.3NF⊂2NF⊂lNF B.3NF⊂lNF⊂2NFC.1NF⊂2NF⊂3NF D.2NF⊂lNF⊂3NF答案:A13. 数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作的是A. 建立库结构B.扩充功能C. 加载数据D.系统调试答案:B14.从E-R模型向关系模型转换,一个M:N的联系转换成关系模式时,该关系模式的键是A. M端实体的键B. N端实体的键C. M端实体键与N端实体键组合D. 重新选取其他属性答案:C15.数据库逻辑设计的主要任务是A. 建立E-R图和说明书B.创建数据库模式C. 建立数据流图D. 把数据送入数据库答案:B二、填空题1.要满足基本应用,一个数据库系统通常应提供给用户使用的基本语言有和。
12章-数据库管理系统-数据库系统概论(第五版)

进程间总的通信开销上升
操作系统的负担增大,空间、时间效率不高
DBMS必须设立并维护若干后台进程,增加了进程切换
要访问的数据不在内存时会造成性能问题
临界区问题(Critical Section)
❖ 适用情况
用户数不庞大(非OLTP应用):Oracle 7之前版本, Ingres,
Informix早期版本
12.2.1 N方案:DBMS与应用程序相融合的方案
❖ 优点
没有进程切换开销 实现比较简单
❖ 缺点
内存的需求量比较大:多DBMS副本 代码冗余使系统性能下降
❖ 适用情况
用户数少的小型DBMS
An Introduction to Database System
12.2 DBMS进程结构和多线索机制
An Introduction to Database System
12.2.2 2N方案:一个DBMS进程对应一个用户进程
❖ 解决N方案中DBMS代码段在内存中不能被共享
应用程序与DBMS副本分开 2N方案
❖ 一用户一进程(Shadow进程)
N个用户进程---N个DBMS进程(共2N个进程)
An Introduction to Database System
12.2.1 N方案:DBMS与应用程序相融合的方案 12.2.2 2N方案:一个DBMS进程对应一个用户进程 12.2.3 N+1方案:一个DBMS进程对应所有用户进程 12.2.4 N+M方案:M个DBMS进程对应N个用户进程 12.2.5 多线索(Multi_Threaded) DBMS的概念
12.2.3 N+1方案:一个DBMS进程对应所有用户进程
❖ 优点
Oracle12c中文版数据库管理、应用与开发实践教程附录思考与练习答案

二、选择题
1.A 3.A
2.B 4.C
5.A
第 7 章 PL/SQL 编程基础
一、填空题
1.DECLARE 3.%TYPE 5./ 7.隔离性
2.CONSTANT 4.120 6.GOTO
二、选择题
1.B 3.C 5.D
2.A 4.A
第 8 章 内置函数
一、填空题
1.123EFG321 2.G3 3.CONCAT() 4.TRUNC() 5.SYSDATE 6.DROP FUNCTION
二、选择题
1.B 3.C 5.A 7.A
2.A 4.B 6.C
第 12 章 其他的数据库对象
一、填空题
1.WITH CHECK OPTION 2.位图索引 3.NEXTVAL 4.私有 Oracle 同义词 5.相对文件号
附 录
411
412
Oracle 12c 中文版数据库管理、应用与开发实践教程
第 2 章 Oracle 数据库管理工具
一、填空题
1.1521 3.lsnrctl status 5.DEFINE
2.tnsnames.ora 4.DESC 6.DISCONNECT
二、选择题
1.C 3.C 5.C
2.D 4.A 6Leabharlann B第 5 章 多表查询和子查询
一、填空题
1.全外连接
2.自连接
3.INTERSECT 4.INNER JOIN
附录 思考与练习答案
第 1 章 Oracle 12c 简介
一、填空题
1.标准版 1 3.PGA 5.服务器进程
2.数据库主服务 4.数据库缓冲区 6.配置参数文件
二、选择题
第 4 章 单表查询
第12章 vb与数据库(1)

语
080101 080102 080103 080104 …
张姗姗 李四明 王耀五 赵刘生 …
3.关系型数据库的基本概念 3.关系型数据库的基本概念 (1) 数据表 数据表是一组相关联的数据按行和列排列形 成的二维表格,简称为表。每个数据表都有 一个表名,一个数据库由一个或多个数据表 组成,各个数据表之间可以存在某种关系。 (2)字段 (2)字段 数据表一般都是多行和多列构成的集合。每 一列称为一个字段(Field),是具有相同 数据类型的集合,字段名是它所对应表格中 的数据项的名称。
② Delete方法 Delete方法 用于在ADO 数据控件的记录集中删除当前 记录 MoveFirst、MoveLast、MoveNext和 ③ MoveFirst、MoveLast、MoveNext和 MovePrevious方法 MovePrevious方法: 方法: 用于在ADO数据控件的记录集中移动记录。 ④ UpdateBatch方法: UpdateBatch方法 方法: 用于保存ADO数据控件的记录集中添加或 编辑操作。
用来设置ADO Data控件和数据库连接的连 接字符串。该字符串和参数格式及内容与 所选驱动器程序有关。 通过这个连接字符串可以建立与数据源的 连接信息,实现ADO控件与相应的数据库 进行连接。 通常通过“属性页”对话框进行该属性的 设置。
结束
(2)RecordSource属性 RecordSource属性
结束
12.1 数据库基础概念
1.数据与数据库 1.数据与数据库 数据:英文为data,是信息的具体物理表 示,是载荷信息的物理符号。 数据经过处理、组织并赋予一定意义后即 可以成为信息。 数据库:英文为Data Base,简称DB,是指 存储在计算机存储介质上的、有一定组织 形式的、可共享的、相互关联的数据集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第12章存储过程12.1 存储过程概述存储过程是一种命名PL/SQL程序块,它将一些相关的SQL语句,流程控制语句组合在一起,用于执行某些特定的操作或者任务。
将经常需要执行的特定的操作写成过程,通过过程名,就可以多次调用过程,从而实现程序的模块化设计,这种方式提高了程序的效率,节省了用户的时间。
存储过程具有以下特点:●存储过程在服务器端运行,执行速度快。
●存储过程增强了数据库的安全性。
●存储过程允许模块化程序设计。
●存储过程可以提高系统性能。
12.2 存储过程的创建和调用12.2.1 创建存储过程1. 通过PL/SQL 语句创建存储过程PL/SQL创建存储过程使用的语句是CREATE PROCEDURE。
语法格式:CREATE [OR REPLACE] PROCEDURE <过程名> /*定义过程名*/[ (<参数名> <参数类型> <数据类型> [ DEFAULT <默认值>] [, …n])]/*定义参数类型及属性*/{ IS | AS }[<变量声明>] /*变量声明部分*/BEGIN<过程体> /*PL/SQL过程体*/END [<过程名>][;]说明:(1)OR REPLACE:如果指定的过程已存在,则覆盖同名的存储过程。
(2)过程名:定义的存储过程的名称。
(3)参数名:存储过程的参数名必须符合有关标识符的规则,存储过程中的参数称为形式参数(简称形参),可以声明一个或多个形参,调用带参数的存储过程则应提供相应的实际参数(简称实参)。
(4)参数类型:存储过程的参数类型有IN、OUT和IN OUT 三种模式,默认的模式是IN模式。
●IN:向存储过程传递参数,只能将实参的值传递给形参,在存储过程内部只能读不能写,对应IN模式的实参可以是常量或变量。
●OUT:从存储过程输出参数,存储过程结束时形参的值会赋给实参,在存储过程内部可以读或写,对应OUT模式的实参必须是变量。
●IN OUT:具有前面两种模式的特性,调用时,实参的值传递给形参,结束时,形参的值传递给实参,对应IN OUT模式的实参必须是变量。
(5)DEFAULT:指定IN参数的默认值,默认值必须是常量。
(6)过程体:包含在过程中的PL/SQL 语句。
存储过程可以带参数,也可以不带参数。
【例12.1】创建一个不带参数的存储过程spTest,输出Hello Oracle。
CREATE OR REPLACE PROCEDURE spTest /*创建不带参数的存储过程*/ASBEGINDBMS_OUTPUT.PUT_LINE('Hello Oracle');END;【例12.2】创建一个带参数的存储过程spTc,查询指定学号学生的总学分。
CREATE OR REPLACE PROCEDURE spTc(p_sno IN CHAR)/*创建带参数的存储过程, p_sno参数为IN模式*/AScredit number;BEGINSELECT tc INTO creditFROM studentWHERE sno=p_sno;DBMS_OUTPUT.PUT_LINE(credit);END;2. 通过SQL Developer图形界面方式创建存储过程【例12.3】通过图形界面方式创建存储过程spTc,用于求102课程的平均分。
(1)启动”SQL Developer”,在”连接”节点下打开数据库连接”sys_stsys”,选择并展开“过程”节点,右单击该节点,在弹出的快捷菜单中选择”创建过程”命令,出现”创建PL/SQL 过程”对话框,如图12.1所示。
(2)在“名称”文本框中输入存储过程的名称,这里是spTc,单击“+”按钮添加一个参数,在“Name”栏输入参数名称p_sno,在“Type”栏选择参数的类型CHAR,在“Mode”栏选择参数的模式IN(3)单击“确定”按钮,在spTc过程的编辑框中编写PL/SQL语句,完成后单击“编译”按钮完成过程的创建。
12.2.2 存储过程的调用存储过程的调用可采用PL/SQL语句,通过EXECUTE(或EXEC)语句可以调用一个已定义的存储过程。
语法格式:[ { EXEC | EXECUTE } ] <过程名>[ ( [<参数名> =>] <实参> | @<实参变量> [,…n]) ] [;]12.2.2 存储过程的调用说明:(1)可以使用EXECUTE(或EXEC)语句调用已定义的存储过程。
但在PL/SQL块中,可以直接使用过程名调用。
(2)对于带参数的存储过程,有以下三种调用方式:●名称表示法:调用时按形参的名称和实参的名称对应调用。
●位置表示法:调用时按形参的排列顺序调用。
●混合表示法:将名称表示法和位置表示法混合使用。
1)使用EXECUTE语句调用和使用PL/SQL语句块调用存储过程【例12.4】调用存储过程spTest。
(1)使用EXECUTE语句调用EXECUTE spTest;运行结果:Hello Oracle(2)使用PL/SQL语句块调用BEGINsptest;END;运行结果:Hello Oracle2)在带参数的存储过程中,使用位置表示法调用和使用名称表示法调用【例12.5】调用带参数的存储过程sptc。
(1)使用位置表示法调用带参数的存储过程EXECUTE spTc('121001');该语句使用位置表示法调用带参数的存储过程spTc,省略了”<参数名>=>”格式,但后面的实参顺序必须和过程定义时的形参顺序一致。
运行结果:52(2)使用名称表示法调用带参数的存储过程EXECUTE spTc(p_sno=>'121001');该语句使用名称表示法调用带参数的存储过程spTc,使用了”<参数名>=><实参>”格式。
运行结果:5212.2.3 存储过程的删除语法格式:DROP PROCEDURE [<用户方案名>.] <过程名>;【例12.6】删除存储过程spTc。
DROP PROCEDURE spTc;12.3 存储过程的参数12.3.1 带输入参数存储过程的使用【例12.7】创建一个带输入参数存储过程spCourseMax,输出指定学号学生的所有课程中的最高分。
(1)创建存储过程CREATE OR REPLACE PROCEDURE spCourseMax (p_sno IN CHAR)/*创建存储过程spCourseMax, 参数p_sno是输入参数*/ASv_max number;BEGINSELECT MAX(c.grade) INTO v_maxFROM student a, course b, score cWHERE a.sno=c.sno AND o=o AND a.sno=p_snoGROUP BY a.sno;DBMS_OUTPUT.PUT_LINE(p_sno||'学生的最高分是'||v_max);END;12.3.1 带输入参数存储过程的使用(2)调用存储过程EXECUTE spCourseMax ('121001');在调用存储过程时,采用按位置传递参数,将实参值’121001’传递给输入参数p_sno并输出该学号学生的所有课程中的最高分。
运行结果:121001学生的最高分是94【例12.8】设st2表结构已创建,含有4列stno、stname、stage、stsex,创建一个带输入参数存储过程spInsert,为输入参数设置默认值,在st2表中添加学号1001~1008。
(1)创建存储过程CREATE OR REPLACE PROCEDURE spInsert(p_low IN INT:=1001,p_high IN INT:=1008)/*创建存储过程spInsert, 输入参数p_low设置默认值1001, 输入参数p_ high设置默认值1008*/ASv_n int;BEGINv_n:=p_low;WHILE v_n<=p_highLOOPINSERT INTO st2(stno) VALUES(v_n);v_n:=v_n+1;END LOOP;COMMIT;END;(2)调用存储过程EXECUTE spInsert;在调用存储过程时未指定实参值,自动用输入参数p_low、p_ high对应的默认值代替,并在st2表中添加学号1001~1008。
使用SELECT语句进行测试:SELECT *FROM st2;运行结果:STNO STNAME STAGE STSEX----------------------------------------------1001100210031004100510061007100812.3.2 带输出参数存储过程的使用【例12.9】创建一个带输出参数的存储过程spNumber,查找指定专业的学生人数。
(1)创建存储过程CREATE OR REPLACE PROCEDURE spNumber(p_speciality IN char, p_num OUT number)/*创建存储过程spNumber, 参数p_speciality是输入参数, 参数p_num是输出参数*/ASBEGINSELECT COUNT(speciality) INTO p_numFROM studentWHERE speciality=p_speciality;END;(2)调用存储过程DECLAREv_num number;BEGINspnumber('计算机', v_num);DBMS_OUTPUT.PUT_LINE('计算机专业的学生人数是:'||v_num);END;在调用存储过程时,将实参值'计算机'传递给输入参数p_speciality;在过程体中,使用SELECT-INTO语句将查询结果存入输出参数p_num;结束时,将输出参数p_num的值传递给实参v_num并输出计算机专业的学生人数。
运行结果:计算机专业的学生人数是:312.3.3 带输入输出参数存储过程的使用【例12.10】创建一个存储过程spSwap,交换两个变量的值。
(1)创建存储过程CREATE OR REPLACE PROCEDURE spSwap(p_t1 IN OUT NUMBER, p_t2 IN OUT NUMBER)/*创建存储过程spSwap, 参数p_t1和p_t2都是输入输出参数*/ASv_temp number;BEGINv_temp:=p_t1;p_t1:=p_t2;p_t2:=v_temp;END;(2)调用存储过程DECLAREv_1 number:=70;v_2 number:=90;BEGINspSwap(v_1,v_2);DBMS_OUTPUT.PUT_LINE('v_1='||v_1);DBMS_OUTPUT.PUT_LINE('v_2='||v_2);END;在调用存储过程时,将实参的值传递给输入输出参数p_t1和p_t2。