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

编译存储过程出现错误
大家好,请问以下错误是什么原因造成的呢?
SQL> create or replace procedure pro
  2  is
  3  begin
  4  select * from student where id=11;
  5  end;
  6  /

Warning: Procedure created with compilation errors

------解决方案--------------------
show error  --可以看到错误信息

select * from student where id=11;
需要赋值给变量,如
select id into v_id from student where id=11;

------解决方案--------------------
你这肯定是错的呀,你想要做什么?在存储过程中,你把结果选出来后,是一定要赋值的。看你的过程,你应该定义一个游标来保存你选出来的结果集才对。
------解决方案--------------------
在存储过程中select后边必须带着into

------解决方案--------------------
要么定义一个游标,把select的结果暂存
要么定义一个变量,用into到变量里面
------解决方案--------------------
楼主还是先看看procedure是干嘛用的吧,你这样写存储过程有什么意义呢
------解决方案--------------------
select 返回的结果存在哪里????

要么into到变量,然后dbms.output.putline打印一下
要么就放到游标里面
或者把结果insert到一个表里面,比如
insert into a(aa,bb) select cc,dd from b where id=1;  ---首先要建立a表。
create table a as select cc,dd from b where id=1;---不需要手动建立表