Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не компилируется процедура / 5 сообщений из 5, страница 1 из 1
16.02.2021, 16:59
    #40045871
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не компилируется процедура
Есть тело процедуры с такой строкой:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
procedure ...
begin
...
insert into ... select ... ;
update ACCIDENT_LOG set DETAILS = 'Добавлено строк: '||SQL%ROWCOUNT where LOG_ID = v_log;
...
end;


При компиляции выдает ошибку "ORA-00911: неверный символ".
Если SQL%ROWCOUNT убрать, то компилируется нормально.
Не могу понять, в чем причина.
...
Рейтинг: 0 / 0
16.02.2021, 17:05
    #40045875
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не компилируется процедура
Хм.
А вот так компилируется:
Код: plsql
1.
2.
3.
4.
...
      v_cnt := SQL%ROWCOUNT;
      update ACCIDENT_LOG set DETAILS = 'Добавлено строк: '||v_cnt where LOG_ID = v_log;
...


Баг парсера IDE?
...
Рейтинг: 0 / 0
16.02.2021, 17:08
    #40045877
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не компилируется процедура
может потому, что это конструкция PL/SQL и SQL о ней ничего не знает?

note: не точно, т.к. перечитывать документацию лениво

https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/sqloperations.htm
...
Рейтинг: 0 / 0
16.02.2021, 17:12
    #40045882
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не компилируется процедура
Alibek B.
Хм.
А вот так компилируется:
Код: plsql
1.
2.
3.
4.
...
      v_cnt := SQL%ROWCOUNT;
      update ACCIDENT_LOG set DETAILS = 'Добавлено строк: '||v_cnt where LOG_ID = v_log;
...


Баг парсера IDE?

Я так понимаю, ошибки ты тоже никогда не пытался писать в таблицу логов напрямую?
С почином )
...
Рейтинг: 0 / 0
16.02.2021, 17:17
    #40045889
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не компилируется процедура
Раньше я использовал TOAD, отладку делал в dbms_output.put_line и о таком нюансе не знал.
Но в SQL Developer dbms_output не работает, поэтому я начал выводить отладочные сообщения в таблицу и столкнулся.

Да, причина именно в этом, атрибуты типа %ROWCOUNT используются в PL/SQL, в SQL их нет.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не компилируется процедура / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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