首页 > 解决方案 > 如何解决这个 pl sql oracle 查询?

问题描述

  1. 使用 While 循环编写一个 PL/SQL 程序来显示 DEPT 表中的所有 DEPTNO、DNAME 和 LOC。假设两个 deptno 之间的差异是 10。

我是初学者,我很困惑解决这个查询请帮助解决这个问题。

标签: plsql

解决方案


以下是你如何做你所要求的,但请记住,这不是最佳的方法。如果您的目标是在 PLSQL 中的 While 循环上训练您自己,那么您就可以了。

DECLARE
   CURSOR C_DEPTS
   IS
      SELECT DEPTNO, DNAME, LOC FROM DEPT;

   V_DEPTNO   VARCHAR2 (255);
   V_DNAME    VARCHAR2 (255);
   V_LOC      VARCHAR2 (255);
BEGIN
   OPEN C_DEPTS;

   FETCH C_DEPTS INTO V_DEPTNO, V_DNAME, V_LOC;

   WHILE C_DEPTS%FOUND
   LOOP
      DBMS_OUTPUT.PUT_LINE ('DEPTNO = ' || V_DEPTNO);
      DBMS_OUTPUT.PUT_LINE ('DNAME = ' || V_DNAME);
      DBMS_OUTPUT.PUT_LINE ('LOC = ' || V_LOC);

      FETCH C_DEPTS INTO V_DEPTNO, V_DNAME, V_LOC;
   END LOOP;
END;

推荐阅读