运维联盟俱乐部

 找回密码
 立即注册
查看: 284|回复: 1

[sql开发] cursor的使用

[复制链接]
  • TA的每日心情
    开心
    2023-8-9 11:05
  • 发表于 2023-12-9 06:55:04 来自手机 | 显示全部楼层 |阅读模式
    DECLARE
      CURSOR c_emp IS SELECT employee_id, first_name, last_name FROM employees;
      v_emp_id NUMBER;
      v_first_name VARCHAR2(50);
      v_last_name VARCHAR2(50);
    BEGIN
      -- 打开游标
      OPEN c_emp;
      
      -- 循环读取游标中的每一行数据并进行处理
      LOOP
        FETCH c_emp INTO v_emp_id, v_first_name, v_last_name;
       
        EXIT WHEN c_emp%NOTFOUND; -- 当游标读取到最后一行时退出循环
       
        -- 对于每一行数据进行处理
        DBMS_OUTPUT.PUT_LINE('Employee ID: ' || v_emp_id || ', Name: ' || v_first_name || ' ' || v_last_name);
      END LOOP;
      
      -- 关闭游标
      CLOSE c_emp;
    END;
    /
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2023-12-9 11:37:49 | 显示全部楼层
    1. DECLARE
    2.   CURSOR c_user IS SELECT username, account_status FROM dba_users;
    3.   v_username  dba_users.username%TYPE;
    4.   v_account_status  dba_users.account_status%TYPE;
    5. BEGIN
    6.   OPEN c_user;
    7.   LOOP
    8.     FETCH c_user INTO v_username, v_account_status;
    9.     EXIT WHEN c_user%NOTFOUND;
    10.     DBMS_OUTPUT.PUT_LINE('DB USERNAME: ' || v_username || ', ACCOUNT STATUS: ' || v_account_status);
    11.   END LOOP;
    12.   CLOSE c_user;
    13. END;
    14. /
    复制代码
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    运维联盟俱乐部 ( 冀ICP备19036648号 )

    GMT+8, 2024-5-2 18:21 , Processed in 0.046365 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表