這個過程是錯誤的。
必須使用select ... into ... from ....的格式才可以。如果想返回結果集合,必須使用包。遮和sql server是不同的。

解决方案 »

  1.   

    谢谢。我知道不一样。
    select ...into ...from只能写一行啊。我还是不知道在包里面怎么写?能不能帮我写一下。让我看看在包里面怎么写?
      

  2.   

    CREATE OR REPLACE package pkg_test as
      type myrctype is ref cursor; 
      function get return myrctype;
    end pkg_test;
    /CREATE OR REPLACE package body pkg_test as
       function get return myrctype is
         rc myrctype;  --定义ref cursor变量
       begin
    open rc for select * from etime.employee;
    return rc;
       end get;
    end pkg_test;
    /
      

  3.   

    CREATE OR REPLACE PACKAGE pkg_test
    AS
       TYPE myrctype IS REF CURSOR;   PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
    END pkg_test;
    /CREATE OR REPLACE PACKAGE BODY pkg_test
    AS
       PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
       IS
          sqlstr   VARCHAR2 (500);
       BEGIN
          IF p_id = 0 THEN
             OPEN p_rc FOR
                SELECT ID, NAME, sex, address, postcode, birthday
                  FROM student;
          ELSE
             sqlstr :=
                'select id,name,sex,address,postcode,birthday
               from student where id=:w_id';
             OPEN p_rc FOR sqlstr USING p_id;
          END IF;
       END get;
    END pkg_test;
    /