我用的navicat for oracle连接的数据库
网上找了一个例子
create or replace procedure output_date is
begin
dbms_output.put_line(sysdate);
end output_date;
call output_date(); 不带参数的这样执行是对的
但是如果带参数,例如
create or replace procedure get_username(v_id in number,v_username out varchar2)
as
begin
select username into v_username from tab_user where id = v_id; --变量赋值
exception
when no_data_found then
raise_application_error(-20001,'ID不存在!');
end get_username;
call get_username(1,'a');
出错提示
[SQL] call GET_USERNAME(1,'a')
[Err] ORA-06577: output parameter not a bind variable
应该如何调用呢?
过程是没有问题的,不执行语句而在过程上右键执行输入参数可以直接返回结果。
------解决方案--------------------
v_username out varchar2
你先改成
v_username in varchar2
应该就可以执行了
差别就在in 和 out~~ 百度下 就知道区别啦~ out是要带回来的
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/search?q=177537