比如:
    create table A(a1,a2,a3,a4)
    create table B(b1,a1,b2,b3)
这两个表是主从关系的表,表A的主键是表B的外键,我想用存储过程返回两个表,或者更多个表内连接后查询的结果集,这个Oracle的存储过程应该怎么写?
请大家尽量写详细点,谢谢大家!

解决方案 »

  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 :=
    v`/`vselect id,name,sex,address,postcode,birthday
    from student where id=:w_idv`/`v;
    OPEN p_rc FOR sqlstr USING p_id;
    END IF;
    END get;
    END pkg_test;