Chinaunix

标题: 从多个表中SELECT数据后,怎样从游标中取值? [打印本页]

作者: pwair    时间: 2004-03-22 21:12
标题: 从多个表中SELECT数据后,怎样从游标中取值?
如下的PL/SQL函数:
CREATE OR REPLACE FUNCTION TEST1
RETURN INTEGER
IS
    vc_Name    VARCHAR(100) := '';
    vc_Code    VARCHAR(100) := '';
    CURSOR cur
        IS
        SELECT NAME,CODE
        FROM A
        ;

FUNCTION setValue(prec IN A%ROWTYPE)
RETURN BOOLEAN
IS
    b_Status := TRUE;
BEGIN
    vc_Name := prec.NAME;
    vc_Code := prec.CODE;
RETURN b_Status;
END;

BEGIN
    FOR rec IN cur LOOP
        setValue(rec);
    END LOOP;
END;

这个函数有没有什么问题,尤其是红色字体的那部分?
如果要是从多个表中选择数据,那么这个函数中的setValue()部分应该怎么写?
是像下面这个函数这样么:
CREATE OR REPLACE FUNCTION TEST2
RETURN INTEGER
IS
    vc_Name    VARCHAR(100) := '';
    vc_Code    VARCHAR(100) := '';
    vc_Type    VARCHAR(100) := '';
    CURSOR cur
        IS
        SELECT A.NAME,A.CODE,B.TYPE
        FROM A,B
        WHERE A.CODE=B.CODE
        ;

FUNCTION setValue1(prec IN A%ROWTYPE)
RETURN BOOLEAN
IS
    b_Status := TRUE;
BEGIN
    vc_Name := prec.NAME;
    vc_Code := prec.CODE;
RETURN b_Status;
END;

FUNCTION setValue2(prec IN B%ROWTYPE)
RETURN BOOLEAN
IS
    b_Status := TRUE;
BEGIN
    vc_Type := prec.TYPE;
RETURN b_Status;
END;

BEGIN
    FOR rec IN cur LOOP
        setValue1(rec);
        setValue2(rec);
    END LOOP;
END;

刚刚接触ORACLE 和 PL/SQL,有许多问题不太明白,麻烦各位指正,谢谢大家。
作者: uiibono    时间: 2004-03-22 21:49
标题: 从多个表中SELECT数据后,怎样从游标中取值?
[quote]原帖由 "pwair"][/quote 发表:


PL/SQL 我不懂,一般用proc。
从多个表中检索数据并使用游标获取记录 跟从单个表中检索数据并使用游标获取记录没有不同的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2