有以下表:CREATE TABLE test(name  VARCHAR2(10)  NOT NULL,
  km  VARCHAR2(10)  NOT NULL,
  cj    NUMBER(6)   NOT NULL 
)  
    insert into  test values('张三','语文',80);
insert  into test values('张三','数学',86);
insert into test values('张三','英语',75);
insert   into test values('李四','语文',78);
insert into test values('李四','数学',85);
insert  into test values('李四','英语',78);我写一过程:
create or replace procedure kao as
begin
select  *   from test;
end;编译出错:
行号= 6 列号= 3 错误文本= PLS-00428: 在此 SELECT 语句中缺少 INTO 子句这过程要如何改??

解决方案 »

  1.   

    create or replace procedure kao as
        strKm  varchar2(2);
        strCj varchar2(20);
    begin
         select  km, cj into strKm, strCj from test;
    end;
      

  2.   

    DECLARE CUSOR s_cur IS
    SELECT * FROM TEST;OPEN CUSOR s_cur;FETCH CUSOR s_sur INTO ...;CLOSE CUSOR s_cur;这是游标的用法!
      

  3.   

    DECLARE CUSOR s_cur IS
    SELECT * FROM TEST;OPEN s_cur;FETCH s_sur INTO ...;CLOSE s_cur;刚才写错了!嘿嘿,不好意思!
      

  4.   

    你这种是sqlserver中的方法,不太适合oracle !应该用游标!
      

  5.   

    我写了:
    srecord  test%rowtype;
         cursor s_cur IS
      SELECT * FROM TEST;  begin
      OPEN s_cur;
      FETCH s_sur INTO srecord ;
      CLOSE s_cur;
       end;
      执行后返回:PL/SQL 过程已成功完成。但没有结果集,怎样返回一个结果集呢??
      

  6.   

    create or replace package mycursor as
      type t_cursor is ref cursor;
      procedure myobjects(p_cursor out t_cursor);
    end mycursor;
    create or replace package body mycursor as
      procedure myobjects(p_cursor out t_cursor)
    is
    begin
      open p_cursor for
        select * from test;
    end myobjects;
    end mycursor;
    试试看吧,俺也不知道行不行!
      

  7.   

    Oracle的存储过程如果不使用自定义的游标好像是不能返回记录集
      

  8.   

    Oracle中有很多和SQL SERVER不同. 可以多看Oracle的文档.