- 论坛徽章:
- 0
|
如下的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,有许多问题不太明白,麻烦各位指正,谢谢大家。 |
|