n 使用OPEN FOR语句把一个光标变量和动态SQL语句关联。在OPEN FOR语句中使用USING子句为动态SQL语句中的占位符绑定变量。
USING子句中不能使用文本NULL,(可以参考练习11g12_07_03来解决)
n 使用FETCH语句获取结果集,可以每次一条,每次多条,或一次全部取出。
n 使用CLOSE语句关闭光标变量。
练习:使用OPEN FOR、FETCH和CLOSE语句的本地动态SQL
|
-- 11g12_07_04.tst DECLARE TYPE EmpCurTyp IS REF CURSOR; vCursorEmp EmpCurTyp; recordEmp employees%ROWTYPE; vStmtStr VARCHAR2(200); vJob_id employees.job_id%TYPE; BEGIN -- 有占位符的动态SQL vStmtStr := 'SELECT * FROM employees WHERE job_id = :j';
-- 打开光标并在USING子句中指定绑定变量 OPEN vCursorEmp FOR vStmtStr USING 'AD_VP';
-- 每次取回一条记录 LOOP FETCH vCursorEmp INTO recordEmp; EXIT WHEN vCursorEmp%NOTFOUND; DBMS_OUTPUT.PUT_LINE('员工号: ' || recordEmp.employee_id || ', ' || '员工姓名: ' || recordEmp.last_name || ', ' || '员工职位:' || recordEmp.job_id);
END LOOP;
-- 关闭光标 CLOSE vCursorEmp; END; |
结果:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1123733/ ,如需转载,请注明出处,否则将追究法律责任。