create or replace procedure query_year (y in number)
as
begin
       select * from tmp where year=y ;end ;
上面的存储过程有什么问题?怎么修改?我是初学,希望能讲的详细些。

解决方案 »

  1.   

    在存储过程中select语句要与into配合使用你这个需求不需要用存储过程的啊 sql语句就可以了
      

  2.   

    Oracle规定在块中是不能单独用select * from 。这种形式的查询的,要将结果放入变量中,如select *  into 变量  from。 
      

  3.   

    create or replace procedure query_year (y in number)
    as
    a emp%rowtype;
    begin
      select * into a from tmp where year=y ;
    end ;
      

  4.   

    3楼说的是emp->tmp吧?
    create or replace procedure query_year (y in number)
    as
    emp%rowtype;
    begin
      select * into a from tmp where year=y ;
    end ;
    确实可用了。但是还是不太明白。我下了挺多教程,版本儿都不一样。郁闷。
      

  5.   

    create or replace procedure query_year (y in number)
    as
    begin
      execute immediate 'select * from tmp where year='||y ;end ;
    --orcreate or replace procedure query_year (y in number)
    as
    a tmp%rowtype;
    begin
      select * into a from tmp where year=y ;end ;