代码之家  ›  专栏  ›  技术社区  ›  Michał Ziober

比较Oracle中的值时出错

  •  1
  • Michał Ziober  · 技术社区  · 15 年前

    我写简单的程序。

    DECLARE
      connection_id LINE.CONNECTION_ID%TYPE := 11009;
      tmp_integer INTEGER;
    BEGIN
      SELECT COUNT(*) INTO tmp_integer FROM LINE WHERE LINE.CONNECTION_ID = 11009;
      DBMS_OUTPUT.PUT_LINE(connection_id);
      DBMS_OUTPUT.PUT_LINE(tmp_integer);
    END;
    

    发射结果:

    11009
    3
    

    结果很好。我只有3行的连接线是11009。 修改后:

    DECLARE
      connection_id LINE.CONNECTION_ID%TYPE := 11009;
      tmp_integer INTEGER;
    BEGIN
      SELECT COUNT(*) INTO tmp_integer FROM LINE WHERE LINE.CONNECTION_ID = connection_id;
      DBMS_OUTPUT.PUT_LINE(connection_id);
      DBMS_OUTPUT.PUT_LINE(tmp_integer);
    END;
    

    但在这种情况下,我得到了奇怪的结果:

    11009
    30997
    

    错误在哪里?

    1 回复  |  直到 15 年前
        1
  •  3
  •   dpbradley    15 年前

    尝试将pl/sql变量的名称更改为不同于表中的列名称,例如v_connection_id。