首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

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

2012-08-13 
Oracle 中in out参数实现数字交换in参数可以接收一个值,但是不能在存储过程中修改这个值,而对于out参数,它

Oracle 中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=20var_min=30交换后var_max=30var_min=20

?

?

热点排行