日期:2014-05-17  浏览次数:20851 次

Oracle11g 创建存储过程报错,请帮我看看~
创建存储过程的语句:
create or replace procedure hello(hid in varchar(2),hmain_id out varchar(20))
as
begin
select main_id into hmain_id from tb_main where id=hid;
end hello;
/
报错以下错误:请问为什么啊?该怎么解决?

------解决方案--------------------
create or replace procedure hello(hid in varchar(2),hmain_id out varchar(20))
改为,不要指定长度
create or replace procedure hello(hid in varchar,hmain_id out varchar)


------解决方案--------------------
set serveroutput on
------解决方案--------------------
引用:
Quote: 引用:

create or replace procedure hello(hid in varchar(2),hmain_id out varchar(20))
改为,不要指定长度
create or replace procedure hello(hid in varchar,hmain_id out varchar)

谢谢,已经是成功了。
另外想问一下,在调用存储过程的时候,执行下面的命令。
declare
hmain_id varchar2(20);
begin
hello('01',hmain_id);
DBMS_OUTPUT.PUT_LINE(hmain_id);
end;
/
标红色的句子是将hmain_id的结果输出在屏幕上的意思吗?可是我在执行这条命令时并没有将hmain_id的结果输出。只显示了“PL/SQL已成功完成”


如果你在PLSQL developer的SQL window中运行,点击上边的output选项卡,就可以看到输出了。
如果在command window中执行,在PLSQL 语句块钱加上一行 set serveroutput on