Oracle 中in out参数实现数字交换

in out参数

in参数可以接收一个值,但是不能在存储过程中修改这个值,而对于out参数,它在调用过程时为空,在过程执行中将为为这个参数指定一个值,并在执行后返回.

in out参数同时具有了in参数和out参数的特性,在过程中可以读取和写入该类型的参数。

 

 

// 比如下面是一个典型的案例交换两个数

SQL> create or replace procedure swap(cempno in out number,
  2        tempno in out number
  3  )is
  4  var_temp number;
  5  begin
  6  var_temp:=cempno;
  7  cempno:=tempno;
  8  tempno:=var_temp;
  9  end swap;
 10  /
 
Procedure created

 

 

swap过程是完成两个数的交换,它需要同时传入两个参数,在交换完成后需要同时返回两个值。下面将编写匿名程序块执行过程:

     SQL> declare

  2  var_max number:=20;

  3  var_min number:=30;

  4  begin

  5   dbms_output.put_line('交换前');

  6   dbms_output.put_line('var_max'||'='||var_max);

  7   dbms_output.put_line('var_min'||'='||var_min);

  8  if var_max<var_min then

  9   swap(var_max,var_min);

 10      end if;

 11   dbms_output.put_line('交换后');

 12  dbms_output.put_line('var_max'||'='||var_max);

 13  dbms_output.put_line('var_min'||'='||var_min);

 14  end;

 15  /

 

交换前

var_max=20

var_min=30

交换后

var_max=30

var_min=20

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值