存储过程中的in out in out 三种类型的参数
in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。
out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程
in out 表示高参数可以向该过程中传递值,也可以将某个值传出去
一:在函数中:
CREATE OR REPLACE FUNCTION get_salary(
Dept_no NUMBER,
Emp_count OUT NUMBER)
RETURN NUMBER
IS
V_sum NUMBER;
BEGIN
SELECT SUM(SAL), count(*) INTO V_sum, Emp_count
FROM EMP WHERE DEPTNO=dept_no;
RETURN V_sum;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
END;
调用:
DECLARE
V_num NUMBER;
V_sum NUMBER;
BEGIN
V_sum :=get_salary(10, v_num);
DBMS_OUTPUT.PUT_LINE('部门号为:10的工资总和:'||v_sum||',人数为:'||v_num);
END;
Dept_no参数可以直接输入。
Emp_count OUT NUMBER 参数因为是out。所以先要声明一个变量V_num。因为函数有一个return返回。out返回的时候。直接写里面执行不了。所以定义一个变量V_sum用来接收get_salary函数的
返回值。
二:过程:
create or replace procedure pro_demo_p1(
p_one in varchar2,--可以传入参数
p_two out varchar2,--可以返回值
p_three in out varchar2--既可以传入参数,也可以返回值
) is
begin
dbms_output.put_line('参数:' || 'p_one:' || p_one || ',p_two:'||p_two || ',p_three:'||p_three);
end;
调用:
DECLARE
TWO VARCHAR2(20):='LI';
THREE VARCHAR2(20):='BAI';
begin
pro_demo_p1('one',TWO,THREE);
end;
p_two明明赋予了值。没有输出出来。因为是out。
使p_two输出值。定义一个变量TWOA。然后赋给p_two。
create or replace procedure pro_demo_p1(
p_one in varchar2,--可以传入参数
p_two out varchar2,--可以返回值
p_three in out varchar2--既可以传入参数,也可以返回值
) is TWOA VARCHAR2(20) :='LI';
begin
p_two:=TWOA; --TWOA变量赋值给p_two参数。
dbms_output.put_line('参数:' || 'p_one:' || p_one || ',p_two:'||p_two || ',p_three:'||p_three); end;
调用:
DECLARE
TWO VARCHAR2(20);--定义这两个变量作为pro_demo_p1的参数传进去
P_THREE VARCHAR2(20):='BAI';
BEGIN
pro_demo_p1('A',TWO,P_THREE);
END;
存储过程中的in out in out 三种类型的参数的更多相关文章
- mysql中float、double、decimal三种类型,以及数值产生误差的原因
单精度浮点数用4字节(32bit)表示浮点数,采用IEEE754标准的计算机浮点数,在内部是用二进制表示的,如:7.22用32位二进制是表示不下的,所以就导致不精确了,存取会出现误差. mysql中f ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- (转)在网页中JS函数自动执行常用三种方法
原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中 ...
- 转 Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式: 方式一:加载classpath目录下的vm文件 Prope ...
- Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式: a. 加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...
- 在网页中JS函数自动执行常用三种方法
在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT LANGUAGE="JavaScript"> function ...
- 链路层三种类型的MAC地址
若需要转载,请注明出处. 我们知道,链路层都是以MAC地址来进行通信双方的地址标识的,如下图:在应用中根据接收方的多寡来进行划分,可分为以下三种: 单播(Unicast) 多播(Multicast) ...
- 缓慢变化维 (Slowly Changing Dimension) 常见的三种类型及原型设计(转)
开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库 ...
- ASP.NET 设计模式分为三种类型
设计模式分为三种类型,共23类. 一.创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 二.结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代 ...
随机推荐
- node-解压版 安装配置测试
一.下载node压缩包 地址:https://nodejs.org/en/download/ 二.解压下载的压缩包,在文件根目录新增两个文件夹: node_cache:缓存文件位置 node_gl ...
- mybatis源码分析之02配置文件解析
该篇正式开始学习mybatis的源码,本篇主要学习mybatis是如何加载配置文件mybatis-config.xml的, 先从测试代码入手. public class V1Test { public ...
- BottomNavigationBar 自定义 底部导航条
在flutter中,BottomNavigationBar 是底部导航条,可以让我们定义底部 Tab 切换,bottomNavigationBar是 Scaffold 组件的参数. BottomNav ...
- python中的Nonetype
在python中的None的类型是Nonetype, 嗯,看清楚了吧,None是值,Nonetype是类型.同理,数字1是值,int是类型.注意:在python中是没有Null的,取而代之的是None
- php面试专题---4、流程控制考点
php面试专题---4.流程控制考点 一.总结 一句话总结: 理解循环内部机制(指针操作),更易于记忆foreach的reset特性,分支结构中理解了switch...case的执行步骤(跳转表)也就 ...
- IIS的站点配置存储在applicationHost.config
C:\Windows\System32\inetsrv\Config\applicationHost.config
- C语言基本数据类型大小
C语言基本数据类型占用的字节数可以通过如下例子获取: #include<stdio.h> int main(void) { printf("char size=%d \n&quo ...
- 《单词的减法》state1~state17(第一遍学习记录)
单词的减法 2016.05.18 state 1 accordingly 因此,相应地,对应地 advisory 顾问的,劝告的 annoy 打扰,干扰,使恼怒 anticipate/particip ...
- 洛谷P4169 [Violet]天使玩偶/SJY摆棋子(CDQ分治)
[Violet]天使玩偶/SJY摆棋子 题目传送门 解题思路 用CDQ分治开了氧气跑过. 将输入给的顺序作为第一维的时间,x为第二维,y为第三维.对于距离一个询问(ax,ay),将询问分为四块,左上, ...
- SQL分支语句与循环语句
分支语句 if then elsif then else end if 举例: set serveroutput on declare num number; begin num:; then dbm ...