【问题标题】:I HAVE NO IDEA HA TO DO SQL/ORACLE [closed]我不知道必须做 SQL/ORACLE [关闭]
【发布时间】:2022-11-04 21:11:49
【问题描述】:

CAN ANYONE FIX IT

我不知道我的代码有什么问题

DECLARE
v_nom Enseignants.nom%type;
v_code Enseignants.code %type;
i number;
CURSOR cur_ens IS
SELECT code, nom INTO v_code , v_nom
FROM Enseignants;
BEGIN
OPEN cur_ens;
    FETCH cur_sal INTO v_nom, v_sal;
    DBMS_OUTPUT.PUT_LINE('Nom : '||v_nom);
    DBMS_OUTPUT.PUT_LINE('code : '||v_code);
    CLOSE
END;

显示表格的第一行

【问题讨论】:

    标签: sql oracle


    【解决方案1】:
    • 您使用了未声明的变量
    • 光标中有INTO 子句(不应该存在)
    • 有你不使用的变量(这不是错误,但仍然如此)
    • 错过关闭光标

    修复后,带有一些示例数据:

    SQL> SELECT * FROM enseignants;
    
          CODE NOM
    ---------- ----------
           100 Littlefoot
    
    SQL>
    SQL> SET SERVEROUTPUT ON
    SQL>
    SQL> DECLARE
      2     v_nom   Enseignants.nom%TYPE;
      3     v_code  Enseignants.code%TYPE;
      4
      5     CURSOR cur_ens IS SELECT code, nom FROM Enseignants;
      6  BEGIN
      7     OPEN cur_ens;
      8
      9     FETCH cur_ens INTO v_code, v_nom;
     10
     11     DBMS_OUTPUT.PUT_LINE ('Nom : ' || v_nom);
     12     DBMS_OUTPUT.PUT_LINE ('code : ' || v_code);
     13
     14     CLOSE cur_ens;
     15  END;
     16  /
    Nom : Littlefoot
    code : 100
    
    PL/SQL procedure successfully completed.
    
    SQL>
    

    【讨论】:

      【解决方案2】:

      除了变量使用的其他小问题之外,您需要在游标中取出 INTO 子句,这些问题已在下面更正。

      DECLARE
      v_nom Enseignants.nom%type;
      v_code Enseignants.code %type;
      i number;
      CURSOR cur_ens IS
      SELECT code, nom
      FROM Enseignants;
      BEGIN
      OPEN cur_ens;
          FETCH cur_ens INTO v_code, v_nom;
          DBMS_OUTPUT.PUT_LINE('Nom : '||v_nom);
          DBMS_OUTPUT.PUT_LINE('code : '||v_code);
      CLOSE cur_ens;
      END;
      /
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-16
        • 2022-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-05
        • 2014-02-28
        • 2012-02-14
        相关资源
        最近更新 更多