oracle存储过程的in out 值传递,这是怎么传递的??看不懂啊??

SQL>CREATEORREPLACEPROCEDUREHelloWorld2(2p_user_nameINVARCHAR2,3p_out_valOUTVARCHAR2,... SQL> CREATE OR REPLACE PROCEDURE HelloWorld2 (
2 p_user_name IN VARCHAR2,
3 p_out_val OUT VARCHAR2,
4 p_inout_val IN OUT VARCHAR2
5 ) AS
6 BEGIN
7 dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');
8 p_out_val := 'A';
9 p_inout_val := 'B';
10 END HelloWorld2;
11 /
Procedure created.
SQL> DECLARE
2 p_outval VARCHAR2(10);
3 p_inoutval VARCHAR2(10) := '~Hi~';
4 BEGIN
5 HelloWorld2('Edward', p_outval, p_inoutval);
6
7 dbms_output.put_line('p_outval=' || p_outval);
8 dbms_output.put_line('p_inoutval=' || p_inoutval);
9 END;
10 /
Hello Edward~Hi~!
p_outval=A
p_inoutval=B
PL/SQL procedure successfully completed.
SQL>
展开
 我来答
透明哒水果75
2014-09-10
知道答主
回答量:26
采纳率:0%
帮助的人:7.9万
展开全部
p_user_name的IN,表示这个参数是传入参数。

p_out_val的OUT,表示这个是传出参数。也就是JAVA中return的值。

p_inoutval的IN OUT,表示这个既是传入、又是传出参数。也就是说,你可以利用它传入该存储过程,然后接到处理后的这个参数。一个参数搞定了2项功能(传入,传出)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美食刊
2018-07-18
知道答主
回答量:87
采纳率:0%
帮助的人:15.2万
展开全部
面对输入参数只取其值,面对输出参数只给其赋值,面对输入输出参数,先取其值,再给其赋值。好好理解这句话,先取p_inoutval中的中~hi~,之后赋值B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式