oracle 过程的具体参数,Oracle 存储过程的参数理解

-- 输出参数不可以修改 解决的方法有两种

--1 把参数改成 输入参数

--2 就是参数改成 可输入输出的参数;

调用过程的 三个方式

1 就是使用call

在只用call方式调用函数的时候,必须加要括号,有参数,还要加参数值

这个方式在命令窗口,调用过程,将不会出现输入的数据.

2 就是使用exec 命令,进行命令调用过程, 使用命令,就必须在命令行里面输入

过程名,这个命令窗口中,可加可不加() ,如果有参数的,就一定要加,还有参数值,参数值的类型要与

变量类型相同.

3 在语句块中进行调用过程,这个方式和命令模式类似,他们都是可要可不要(),

-- 在2 和 3 中的 没有括号的情况是,过程没有参数 ,如果有,就必须要有()

输出参数的特点

1 一个过程中,如果有输出参数(OUT 参数),在调用过程的使用,也要传入一个参数, 这个参数可以不用在调用的地方

进行赋值,就直接传入一个声明好的一个变量,用来接受存储过程中的输出参数的值(OUT 参数)

2 输入参数 值不可以改变在过程中,

注意: 在存储过程中,他的参数类型不可以设置它的大小 ;

例如;

CREATE OR REPLACE PROCEDURE hello(

p_name IN VARCHAR2(12),

p_age OUT NUMBER(10,2)

)

IS

BEGIN

如果有输出参数就必须有有一个参数进行接收 ;

CREATE OR REPLACE PROCEDURE hello(

p_name IN VARCHAR2,

p_age OUT emp.sal%TYPE

)

IS

BEGIN

SELECT emp.sal + 3131 INTO p_age FROM emp WHERE empno = 7788 ;

dbms_output.put_line( p_age);

END ;

--------- 块中调用方法

DECLARE

v_nanme varchar2(12);

v_age NUMBER (12,2);

BEGIN

hello (v_nanme,v_age);

dbms_output.put_line(v_age);

END ;

-- 在这个过程中 传入的v_age 就是接受 存储过程输出参数的值 ; 类似于Java的中的返回值

-- 理解 in out 参数

CREATE OR REPLACE PROCEDURE hello1 (

p_name IN OUT emp.ename%TYPE

)

IS

BEGIN

-- SELECT emp.ename INTO p_name FROM emp ;

p_name:='a;sk , ' || p_name ;

END ;

--------------------------------------------------------------------------

DECLARE

v_nanme varchar2(12);

BEGIN

v_nanme:='12312';

hello1(v_nanme);

dbms_output.put_line(v_nanme);

END ;

SELECT emp.sal FROM emp WHERE emp.empno = 7788 ;0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值