oracle的遊標使用:PL/SQL包含顯式遊標和隱式遊標兩種類型,其中隱式遊標用於處理select into和DML語句,而顯式遊標則專門用於處理select語句返回的多行數據。使用顯式遊標包括定義遊標、打開遊標、提取遊標和關閉遊標四個階段:
1.cursor 定義遊標
2.open 打開遊標
3.fetch 提取遊標
4.close 關閉遊標
實用記憶技巧(dofw)
d: declare 定義;
o: open 打開遊標;
f: fetch 遊標下移;
w: while 循環。
在塊中使用DDL 和 select查詢-------EXECUTE IMMEDIATE
例如:
EXECUTE IMMEDIATE 'create table t1';
EXECUTE IMMEDIATE 'select * from emp';
遊標使用的例子:
--更新員工工資,sal低於3000的,加500(隱式遊標對象SQL)
DECLARE
v_sal emp.sal%TYPE;
BEGIN
UPDATE emp SET sal=sal+500
WHERE sal<=3000;
dbms_output.put_line(SQL%Rowcount);
--COMMIT;
END;
--用顯式遊標打印各部門的信息(口訣:dofw)
DECLARE
CURSOR my_cus IS SELECT * FROM emp;
my_row my_cus%ROWTYPE;
BEGIN
OPEN my_cus;
FETCH my_cus INTO my_row;
WHILE(my_cus%FOUND)
LOOP
dbms_output.put_line(my_row.ename||','||my_row.sal);
FETCH my_cus INTO my_row;
END LOOP;
CLOSE my_cus;
END;