oracle存储过程,IN OUT 类型的参数怎么传参数

oracle存储过程,IN OUT 类型的参数怎么传参数,第1张

in out类型参数过程运行开始会把参数值传入过程,运行结束后会把参数值再传出去。

比如说过程test(v_cs in out number)功能为把带入的参数加1;

v_num:=1

test(v_num)

dbms_output.put_line(v_num)

将输出2;

Oracle 过程中定义了in|out|in out3中参数模式,每个参数可以选择其一

in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。

举个例子

create or replace procedure update_price(

p_product_id in NUMBER,

p_factor in NUMBER)

AS

.....

你在引用这个过程的时候给参数传入值

exexute update_price(2,2.5)

这是定义的2个参数就得到了值,in模式下值不能变

out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程

in out 表示高参数可以向该过程中传递值,也可以将某个值传出去

前边几个是变量,就是in out那一堆

相当于你输入和输出的参数,而且输入和输出的参数只能每次调用一个

一个输入参数你不可能一下输入两个

下边is后边那个

%TYPE属性

在PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码。

例:

v_empno SCOTT.EMP.EMPNO%TYPE

v_salary EMP.SALARY%TYPE

不但列名可以使用%TYPE,而且变量、游标、记录,或声明的常量都可以使用%TYPE。这对于定义相同数据类型的变量非常有用。

其实说白了,就是后边is定义的那个已经不是常规的变量了,相当于一个数组或者游标


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11181462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存