比较Oracle中的值时出错

时间:2009-08-31 10:03:59

标签: oracle stored-procedures select count

我写了简单的程序。

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行,其中CONNECTION_ID是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 个答案:

答案 0 :(得分:3)

尝试将PL / SQL变量的名称更改为与表格中的列名称不同,例如v_connection_id。