显式游标是 PL/SQL 中挺常用的一个技巧,是在你需要多行数据时。它能够你手动控制游标的生命周期,提高查询效率,避免一次性加载所有数据到内存。比如,你可以通过定义游标来获取前 10 名员工的信息,或者动态传入参数来获取特定薪资以上的员工。通过游标,你可以一边获取数据,一边进行,而不是一次性获取所有数据,这样就能让程序响应更快。
例如,以下是一个查询前 10 名员工的例子:

DECLARE
  V_ENAME EMP.ENAME%TYPE;
  V_SAL EMP.SAL%TYPE;
  CURSOR C_CURSOR IS
    SELECT ENAME, SAL FROM EMP WHERE ROWNUM < 11>
,游标的参数化使用也灵活,像这样:
DECLARE
  V_ENAME EMP.ENAME%TYPE;
  V_SAL EMP.SAL%TYPE;
  CURSOR C_CURSOR(P_SAL EMP.SAL%TYPE) IS
    SELECT ENAME, SAL FROM EMP WHERE SAL >= P_SAL;
BEGIN
  OPEN C_CURSOR(1000);
  FETCH C_CURSOR INTO V_ENAME, V_SAL;
  WHILE C_CURSOR %FOUND LOOP
    DBMS_OUTPUT.PUT_LINE(V_ENAME || '---' || TO_CHAR(V_SAL));
    FETCH C_CURSOR INTO V_ENAME, V_SAL;
  END LOOP;
  CLOSE C_CURSOR;
END;
如果你经常接触 Oracle 数据库,掌握显式游标一定能让你事半功倍。通过合适的游标操作,你能更加灵活地大量数据,避免一些性能瓶颈,操作也比较简洁。
需要注意的是,游标要及时关闭,避免资源浪费,记得养成好习惯哦。