powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Двойное объявление переменной в анонимном блоке с меткой
4 сообщений из 4, страница 1 из 1
Двойное объявление переменной в анонимном блоке с меткой
    #39737113
artemiuss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите плз, почему
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
<<SS>>
DECLARE
  i NUMBER := 5;
  i NUMBER := 666;
BEGIN
  DBMS_OUTPUT.PUT_LINE('T:1 ' || SS.i);
  DBMS_OUTPUT.PUT_LINE('T:2 ' || SS.i);
END;

возвращает:
T:1 5
T:2 5
...
Рейтинг: 0 / 0
Двойное объявление переменной в анонимном блоке с меткой
    #39737131
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemiussПодскажите плз, почемуВ жизни всегда есть место багу. "Фича" стабильна с 7.3 по 18.3.
Но выход прост: называть переменные нормально и не указывать область видимости, чтоб не налететь на нежданьчик.
...
Рейтинг: 0 / 0
Двойное объявление переменной в анонимном блоке с меткой
    #39737177
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemiussПодскажите плз, почему
Потому что баг в компиляторе, который пропускает PLS-00371:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
begin
  DECLARE
    i NUMBER := 5;
    i NUMBER := 666;
  BEGIN
    DBMS_OUTPUT.PUT_LINE('T:1 ' || i);
  END;
end;
ORA-06550: Строка 7, столбец 36:
PLS-00371: для 'I' разрешается задать не более одного объявления
ORA-06550: Строка 7, столбец 5:
PL/SQL: Statement ignored


Но:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> begin
  2    <<SS>>
  3    DECLARE
  4      i NUMBER := 5;
  5    BEGIN
  6      <<SS2>>
  7      DECLARE
  8        i NUMBER := 777;
  9      BEGIN
 10        DBMS_OUTPUT.PUT_LINE('T:1 ' || SS.i);
 11        DBMS_OUTPUT.PUT_LINE('T:2 ' || SS2.i);
 12      END;
 13    END;
 14  end;
 15  /
T:1 5
T:2 777
PL/SQL procedure successfully completed

SQL> 
...
Рейтинг: 0 / 0
Двойное объявление переменной в анонимном блоке с меткой
    #39737182
artemiuss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,
Спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Двойное объявление переменной в анонимном блоке с меткой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]