游标介绍:游标分为有参,和无参游标。
1.无参游标
CREATE OR REPLACE FUNCTION FUNCTION_NAME(PARA1 IN VARCHAR2)
RETURN PARA_TYPE//返回参数类型
IS
//定义游标
/*
游标关键字--cursor
*/
CURSOR CURSOR_NAME IS
SELECT T.col1,t.col2,t.col3 FROM TABLE1 T
WHERE T.COL1 = PARA1;
CURSOR_NAME_ROW CURSOR%ROWTYPE;//定义了此游标的行--row 类型
BEGIN
OPEN CURSOR_NAME;--游标开启
LOOP
FETCH CURSOR_NAME INTO CURSOR_NAME_ROW;--将值赋予每一行
EXIT WHEN CURSOR_NAME%NOTFOUND;--当游标没有查询到值时,退出
CURSOR_NAME.col2;--取值
END LOOP;
CLOSE CURSOR_NAME;
END;
2.有参游标
CREATE OR REPLACE FUNCTION FUNCTION_NAME(PARA1 IN VARCHAR2)
RETURN PARA_TYPE//返回参数类型
IS
//定义游标
/*
游标关键字--cursor
*/
CURSOR CURSOR_NAME(P_PARA1 VARCHAR2,P_PARA2 VARCHAR2) IS --定义参数个数,类型
SELECT T.col1,t.col2,t.col3 FROM TABLE1 T
WHERE T.COL1 = P_PARA1
AND T.COL2 = P_PARA2;
CURSOR_NAME_ROW CURSOR%ROWTYPE;//定义了此游标的行--row 类型
BEGIN
OPEN CURSOR_NAME(P_PARA1,P_PARA2);--游标开启时,并传入参数
LOOP
FETCH CURSOR_NAME INTO CURSOR_NAME_ROW;--将值赋予每一行
EXIT WHEN CURSOR_NAME%NOTFOUND;--当游标没有查询到值时,退出
CURSOR_NAME.col2;--取值
END LOOP;
CLOSE CURSOR_NAME;
END;