创建了如下的存储过程.尚学堂滴.
用PLSQL执行这个过程却出错了..
测试语句运行结果是未声明绑定变量n4..
大家帮我看看错哪了.
请问当一个参数v_temp是既是in又是out的时候,在PLSQL语句中怎么打印出它的值?存储过程:
create or replace procedure p
(v_a in number, v_b number, v_ret out number, v_temp in out number)
isbegin
if (v_a > v_b) then
v_ret := v_a;
else
v_ret := v_b;
end if;
v_temp := v_temp + 1;
end;
测试语句:
declare
n1 number;
n2 number;
n3 number;
n4 number;
begin
n1 := 3;
n2 := 4;
n4 := 5;
execute p(:n1, :n2, :n3, :n4);
dbms_output.put_line('ok');
dbms_output.put_line(n3 || ',' || n4);
end;
/
用PLSQL执行这个过程却出错了..
测试语句运行结果是未声明绑定变量n4..
大家帮我看看错哪了.
请问当一个参数v_temp是既是in又是out的时候,在PLSQL语句中怎么打印出它的值?存储过程:
create or replace procedure p
(v_a in number, v_b number, v_ret out number, v_temp in out number)
isbegin
if (v_a > v_b) then
v_ret := v_a;
else
v_ret := v_b;
end if;
v_temp := v_temp + 1;
end;
测试语句:
declare
n1 number;
n2 number;
n3 number;
n4 number;
begin
n1 := 3;
n2 := 4;
n4 := 5;
execute p(:n1, :n2, :n3, :n4);
dbms_output.put_line('ok');
dbms_output.put_line(n3 || ',' || n4);
end;
/
可以同时声明两个好像..这也是java开发必备知识..
n1 number;
n2 number;
n3 number;
n4 number;
begin
n1 := 3;
n2 := 4;
n4 := 5;
p(n1, n2, n3, n4);
dbms_output.put_line('ok');
dbms_output.put_line(n3 || ',' || n4);
end;
这样应该可以了 我测试过
PL/SQL 过程已成功完成.
这是不错,但是输出的那些语句呢??
到哪去了..还是不对
对,我也测了,put_line是输出到out put 选项卡
在sql选项卡的右面点一下就可以看结果了。
sun哥别忙着说可以.帮我看下测试语句哪里错了?
不懂.
我sqlplus用的是命令行的.
dbms_output.put_line不是直接输出到命令行上吗
引用变量不用:
n2即可,
另外测试存储过程可以在存储过程名称上面点击右键菜单 test
我用PL/Sql developer
很好用,倒xml,html,跟踪调试存储过程,导出导入,格式化,等等,很强。太多功能了。
n1 number;
n2 number;
n3 number;
n4 number;
begin
n1 := 3;
n2 := 4;
n4 := 5;
p(n1, n2, n3, n4);
dbms_output.put_line('ok');
dbms_output.put_line(n3 || ',' || n4);
end;这样就可以了
要想执行输出
首先要打开服务器的输出显示
用set serveroutput on;
n1 number;
n2 number;
n3 number;
n4 number;
begin
n1 := 3;
n2 := 4;
n4 := 5;
p(n1, n2, n3, n4);
dbms_output.put_line('ok');
dbms_output.put_line(n3 || ',' || n4);
end;就像上面说的 你语法错了知道不 如果想在命令行的形式下输出需要打开set serveroutput on才好使滴