powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / operation is not allowed for system table - срабатывает НЕ на prepare, а в runtime. Why ?
2 сообщений из 2, страница 1 из 1
operation is not allowed for system table - срабатывает НЕ на prepare, а в runtime. Why ?
    #38945222
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

В некоторой базейке имеются пользовательские объекты.
Например, вот такие:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> show proc;
Global procedures:
Procedure Name                    Invalid Dependency, Type
================================= ======= =====================================
SP_TEST_MASTER                            TEST_MASTER, Table
                                          DM_INT, Domain
                                          DM_NUMS, Domain
                                          NUMS_COLL, Collation

Packaged procedures:
Procedure Name                    Invalid Dependency, Type
================================= ======= =====================================
PKG_TEST

Команда:

Код: plaintext
SQL> update RDB$PROCEDURES t  set t.RDB$OWNER_NAME = null where coalesce(rdb$system_flag,0)= 0 ;

-- закономерно обламывается:

Код: plaintext
1.
Statement failed, SQLSTATE = 42000
UPDATE operation is not allowed for system table RDB$PROCEDURES

А вот команда:

Код: plaintext
SQL> update RDB$PROCEDURES t set t.RDB$OWNER_NAME = null where coalesce(rdb$system_flag,0)= 1 ;

-- тихо прокатывает ОК, потому что записей с rdb$system_flag =1 в таблице rdb$procedures - нету.

Однако, вопрос!
Разве не должна была эта команда обломаться на этапе препаринга ?
Другими словами: срабатывание "SQLSTATE = 42000" - оно что, вылазит только при действительном нахождении первой записи и попытке её изменения ?
...
Рейтинг: 0 / 0
operation is not allowed for system table - срабатывает НЕ на prepare, а в runtime. Why ?
    #38945249
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, проверки идут во время выполнения
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / operation is not allowed for system table - срабатывает НЕ на prepare, а в runtime. Why ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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