create or replace procedure test(
  output_num  out number
)
is
begin
output_num:=1;
end test;

解决方案 »

  1.   

    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;
    /
      

  2.   

    在这里我想问一下利用beckhambobo(beckham)的方法的话,调用pl/sql块进行测试以后,我是在sql*plus里进行测试的,系统只会提示你命令通过,但不会象ms sql server里查询分析器那样返回相应的记录集,不知道是不是这样.
      

  3.   

    declare
    v_rc pkg_test.myrctype;
    v_ID ..;
    v_NAME ..; 
    v_sex ;;
    v_address ..;
    v_postcode ;
    v_birthday ..;
    begin
    pkg_test.get('1',v_rc);
    loop
    fetch v_rc into v_id,v_name,...;
    exit when v_rc%notfound;
    dbms_output.put_line(v_id,v_name,...);
    end loop;
    end;
    /