Ошибка при сравнении значений в Oracle - PullRequest
1 голос
/ 31 августа 2009

пишу простую процедуру.

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 Ответ

3 голосов
/ 31 августа 2009

Попробуйте изменить имя вашей переменной PL / SQL, чтобы оно отличалось от имени столбца в таблице, например v_connection_id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...