Oracle 子程序参数模式,IN,OUT,IN OUT
IN :用于传入参数。
在调用过程的时候,实参传到该过程中。
在过程内部,形参只读且不能更改。
在过程执行完毕,返回调用环境时候,实参到的值也不会改变
--带IN参数的过程,赋值。
create or replace proceduce ModeIn(
p_InParameter in number
)as v_LocalVariable number:=0;
begin
DBMS_OUTPUT.PUT('Inside ModeIn:');
if(p_InParameter is null)then --in 传入参数,实参传到该过程中。
DBMS_OUTPUT.PUT_LINE('p_InParameter is null');
else
DBMS_OUTPUT.PUT_LINE('p_InParameter='||p_InParameter);
end if; v_LocalVariable:=p_InParameter; --和法赋值,只读
-- p_InParameter:=v_LocalVariable; --不能赋值,形参只读且不能更改 DBMS_OUTPUT.PUT('At end of ModeIn:');
if(p_InParameter is null) then
DBMS_OUTPUT.PUT_LINE('p_InParameter is null');
else
DBMS_OUTPUT.PUT_LINE('p_InParameter='||p_InParameter);
end if;
end ModeIn; ----调用ModeIn过程,观察IN参数的使用
declare
v_in number :=1;
begin
DBMS_OUTPUT.PUT_LINE('Before calling ModeIn, v_in='||v_in);
ModeIn(v_in);
DBMS_OUTPUT.PUT_LINE('After calling ModeIn, v_in='||v_in);
end;
/ Before calling ModeIn, v_in=1 --实参初始值为1
Inside ModeIn:p_InParameter=1 --形参接收传入的实参值为1
At end of ModeIn:p_InParameter=1 --形参只读且不能更改,形参值为1
After calling ModeIn, v_in=1 --返回调用环境时候,实参到的值也不会改变,实参值为1
OUT参数:用于返回值。
在调用过程时候,会忽略传入的形参的值,形参像未初始化的变量,值为null。
形参可以读取和写入。
在过程执行之后,返回调用环境(只有程序正常结束时),会将形参赋值给实参。
--带OUT参数的过程,赋值。
create or replace procedure ModeOut(
p_OutParameter out number;
)as v_LocalVariable:=0;
begin
DBMS_OUTPUT.PUT('Inside ModeOut:');
if(p_OutParameter is null)then -- 在调用过程时候,会忽略传入的形参的值,形参像未初始化的变量,值为null。
DBMS_OUTPUT.PUT_LINE('p_OutParameter is null');
else
DBMS_OUTPUT.PUT_LINE('p_OutParameter='||p_OutParameter);
end if; v_LocalVariable:=p_OutParameter; --和法赋值,形参可读
p_OutParameter:=7; --形参可以读取和写入 DBMS_OUTPUT.PUT('At end of ModeOut:');
if(p_OutParameter is null) then
DBMS_OUTPUT.PUT_LINE('p_OutParameter is null');
else
DBMS_OUTPUT.PUT_LINE('p_OutParameter='||p_OutParameter);
end if; ----调用ModeOut过程,观察Out参数的使用
declare
v_out number :=1;
begin
DBMS_OUTPUT.PUT_LINE('Before calling ModeOut, v_out='||v_out);
ModeIn(v_out);
DBMS_OUTPUT.PUT_LINE('After calling ModeOut, v_out='||v_out);
end;
/ Before calling Modeout, v_out=1 --实参初始值为1
Inside ModeOut:p_OutParameter is null --在调用过程时候,会忽略传入的形参的值,形参像未初始化的变量,值为null。
At end of ModeOut:p_OutParameter=7 --形参可以读取和写入,值为改变后的7
After calling ModeOut, v_out=7 -- 返回调用环境时候,返回调用环境(只有程序正常结束时),会将形参赋值给实参。
IN OUT参数: 用于传入参数和返回值
在调用过程的时候,实参值会传递到过程中。
在过程执行之后,返回调用环境(只有程序正常结束时),会将形参复制给实参。
create or replace procedure ModeInOut(
p_InOutParameter in out number;
)as v_LocalVariable:=0;
begin
DBMS_OUTPUT.PUT('Inside ModeInOut:');
if(p_InOutParameter is null)then -- 在调用过程的时候,实参值会传递到过程中
DBMS_OUTPUT.PUT_LINE('p_InOutParameter is null');
else
DBMS_OUTPUT.PUT_LINE('p_InOutParameter='||p_InOutParameter);
end if; v_LocalVariable:=p_InOutParameter; --和法赋值,形参可读
p_InOutParameter:=8; --形参可以读取和写入 DBMS_OUTPUT.PUT('At end of ModeInOut:');
if(p_InOutParameter is null) then
DBMS_OUTPUT.PUT_LINE('p_InOutParameter is null');
else
DBMS_OUTPUT.PUT_LINE('p_InOutParameter='||p_InOutParameter);
end if; ----调用ModeInOut过程,观察In Out参数的使用
declare
v_InOut number :=1;
begin
DBMS_OUTPUT.PUT_LINE('Before calling ModeInOut, v_InOut='||v_InOut);
ModeIn(v_InOut);
DBMS_OUTPUT.PUT_LINE('After calling ModeInOut, v_InOut='||v_InOut);
end;
/ Before calling ModeInout, v_InOut=1 --实参初始值为1
Inside ModeInOut:p_InOutParameter=1 -- 在调用过程的时候,实参值会传递到过程中,形参被赋值为1
At end of ModeInOut:p_InOutParameter=8 --形参可以读取和写入,值为改变后的8
After calling ModeInOut, v_InOut=8 -- 返回调用环境时候,返回调用环境(只有程序正常结束时),会将形参赋值给实参。
Oracle 子程序参数模式,IN,OUT,IN OUT的更多相关文章
- Oracle归档模式和非归档模式
一 什么是Oracle归档模式? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志 ...
- Silverlight项目笔记5:Oracle归档模式引起的异常&&表格控件绑定按钮
1.Oracle归档模式产生日志文件引起数据库异常 连接数据库失败,提示监听错误,各种检查监听配置文件,删除再添加监听,无果. sqlplus下重启数据库数据库依然无果,期间碰到多个错误提示: ORA ...
- Oracle归档模式和非归档模式的区别
一.查看oracle数据库是否为归档模式: Sql代码1.select name,log_mode from v$database; NAME LOG_MODE ------------------ ...
- Oracle归档模式与非归档模式设置
(转自:http://www.cnblogs.com/spatial/archive/2009/08/01/1536429.html) Oracle的日志归档模式可以有效的防止instance和dis ...
- oracle并行模式
参考链接:oracle并行模式(Parallel),深入理解Oracle的并行操作(原创),oracle使用并行踩过的坑 1. 语法(这个可以加到insert.delete.update.select ...
- 07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], []
07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], ...
- WebServers发布提示oracle客户端模式不一致
问题:System.InvalidOperationException: 尝试加载 Oracle 客户端库时引发BadImageFormatException.如果在安装32 位Oracle 客户端组 ...
- ORACLE归档模式和非归档模式的利与弊
转: 在Oracle数据库中,主要有两种日志操作模式,分别为非归档模式与归档模式.默认情况下,数据库采用的是非归档模式.作为一个合格的数据库管理员,应当深入了解这两种日志操作模式的特点,并且在数据库建 ...
- Oracle 专用模式(DEDICATED) 和 共享模式(SHARE) (转)
Oracle 是一门博大精深的技术.玩了2年的oracle,依旧还有很多知识点不清楚. 昨天群里的朋友提到了 DEDICATED 和 SHARE 两种模式. 不清楚,默默的做点功课了.从网上搜了点知识 ...
随机推荐
- CSS核心内容之浮动
1.浮动涉及到左浮动,右浮动,清除浮动. 2.浮点的特点: 1.向指定的方向浮动,并且让出空间 2.如果后面的元素也是浮动的,那么后面的元素就会在碰到前面的浮动的元素或者边框时,就定位在那里 3.如果 ...
- Python基础篇(八)
key words:私有变量,类静态变量,生成器,导入Python模块,r查看模块可以使用的函数,查看帮助信息,启动外部程序,集合,堆,时间模块,random模块,shelve模块,文件读取等 > ...
- MIB Browser如何导入已编译的mib
开发过程中,如果需要来回在几套mib之间来回切换,每次都进行编译工作那将是一件很繁琐的事情,我们可以直接导入已经编译好的mib文件,避免重复的编译工作. 第一步,备份已经编译好的mib文件. 将 ...
- C#查询XML解决“需要命名空间管理器”问题
在查询xml时有时会遇到带有前缀的xml,例如:"<ows:Keyword></ows:Keyword>" 这时像往常一样查询就会报错,类似于"需 ...
- Eclipse多平台编译(armeabi, armeabi-v7a, x86, mips)
Jni目录下新增Application.mk,加入 APP_ABI := armeabi armeabi-v7a x86 mips 上面的平台可加可减,全编的话可以写为 APP_ABI := all ...
- appium滑动操作(向上、向下、向左、向右)
appium滑动操作(向上滑动.向下滑动.向左滑动.向右滑动) 测试app:今日头条apk 测试设备:夜游神模拟器 代码如下: 先用x.y获取当前的width和height def getSize() ...
- JAVA受检异常和非受检异常举例
受检异常和非受检异常(运行时异常)举例 RuntimeException(即非受检异常): RuntimeException在默认情况下会得到自动处理,所以通常用不着捕获RuntimeExceptio ...
- MysqL自动提交机制的关闭
MysqL在执行一句数据库操作命令的时候,通常都是自动提交的.常用引擎下有两种,分别是MyIsam和InnoDB,MyIsam是不支持事务处理的,但InnoDB支持,但InnoDB在不开启事务处理的情 ...
- 2道acm简单题(2013):1.(时分秒)时间相减;2.主持人和N-1个人玩游戏,每个人说出自己认识的人数,判断其中是否有人说谎。
/*1.题目:输入一个数,代表要检测的例子的个数,每个例子中:输入两个时间(格式HH:MM : SS),前面时间减去后面时间,输出在时钟上显示的时间,格式一样,如果是以为数字的前面补零.*//**思路 ...
- Office 365 共享链接直接进入编辑
首先在Word online共享文档(不多赘述) 但这个链接打开的是预览视图,要点击右上角的"在浏览器中编辑"才能真正编辑. 但是很多情况都是没必要进入这个预览界面再编辑的.这多点 ...