关于in out inout 的用法 看了解释,知道IN是调入,OUT是调出,就是不太明白怎么用,能写个简单的例子然后解释下吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 准确说,in是输入参数,out是输出参数,inout即可做输入参数也可做输出参数 in,out一般用在写function或procedure中写了个简单的例子给你看看,不知能不帮上忙create or replace procedure xx_proc( v_x in integer ,v_y out integer)isbegindbms_output.put_line(to_char(v_x));v_y := v_x;end;var v_yy integerexec xx_proc(990,:v_yy)PRINT v_yy create or replace procedure p_test( i_in in varchar2, o_out out varchar2)asbegin --o_out := 'haha' || o_out; null;end;/set serveroutput on;declare v_in varchar2(20); v_out varchar2(20);begin v_in := 'hehe'; v_out := 'heihei'; p_test(v_in, v_out); dbms_output.put_line('In参数:' || v_in); dbms_output.put_line('Out参数:' || v_out);end;/set serveroutput off;SQL> Procedure createdIn参数:heheOut参数:PL/SQL procedure successfully completed通过这个例子可以看出来,in 参数,才被存储过程调用前后,值不发生变化,而 out 参数,在被调用后,会被重新赋值。 语法检查 大哥们 能不能介绍本oracle的书 看看 如何判断A表是B表的子表 [求助]连接数据库产生ORA-12154错误。 ora-12154 tns:无法处理服务名?(文出,马上界铁,不出,也是)才鸟 我用CB+BDE连接Oracle 用Query查询中为什么所有的子段必须用大写的呀 急 oracle 初级问题!开发工具! 为什么临时表中的数据总是不变化? PL/SQL CTRL 鼠标左键 超链接跳转这个功能如何设置 oracle卸载问题 在线等,急急急 感谢wildwave刚才的热心回答,抱歉发错了分,请进来回复一下
写了个简单的例子给你看看,不知能不帮上忙
create or replace procedure xx_proc( v_x in integer ,v_y out integer)
is
begin
dbms_output.put_line(to_char(v_x));
v_y := v_x;
end;var v_yy integer
exec xx_proc(990,:v_yy)
PRINT v_yy
(
i_in in varchar2,
o_out out varchar2
)
as
begin
--o_out := 'haha' || o_out;
null;
end;
/
set serveroutput on;declare
v_in varchar2(20);
v_out varchar2(20);
begin
v_in := 'hehe';
v_out := 'heihei'; p_test(v_in, v_out); dbms_output.put_line('In参数:' || v_in);
dbms_output.put_line('Out参数:' || v_out);
end;
/set serveroutput off;SQL> Procedure createdIn参数:hehe
Out参数:PL/SQL procedure successfully completed通过这个例子可以看出来,in 参数,才被存储过程调用前后,值不发生变化,而 out 参数,在被调用后,会被重新赋值。