powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер на запрет инсерта
15 сообщений из 15, страница 1 из 1
Триггер на запрет инсерта
    #39714519
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе всем.

Задачка интересная.

Дано : Таблица my_table ( a number , b varchar2 , c varchar2 ....... ).

Нужно создать триггер который проверяет какие данные пользователь хочет вставить колонку b . Если эти данные содержат в себе символ % то отменить инсерт и перейти к следующей вставке ( инсерта ) . Надеюсь доступно обьяснил .
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714523
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104Задачка интересная.

В каком месте она интересная-то? В той из двух строчек, которая проверяет условие или в
той, которая выбрасывает исключение?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714533
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov которая выбрасывает исключение?


Через что это реализуется ?
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714539
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104,

инсерт вставляет три строки, во второй есть %, что делать с 1 и 3?

.....
stax
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714540
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104то отменить инсерт и перейти к следующей вставке 14323375
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714542
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxmaverick2104,

инсерт вставляет три строки, во второй есть %, что делать с 1 и 3?

.....
stax

Оставить в таблице .
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714543
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicmaverick2104то отменить инсерт и перейти к следующей вставке 14323375

Вставить а затем удалить != не вставлять.

SY.
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714549
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSTEAD OF
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714561
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicmaverick2104то отменить инсерт и перейти к следующей вставке 14323375
странно я написал

заполнять надо таблицу ровидов

если есть запрет на удаление (см соседнуюю ветку) то не прокатит

.....
stax
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714572
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104Через что это реализуется ?

RAISE/EAISE_APPLICATION_ERROR.

maverick2104инсерт вставляет три строки, во второй есть %, что делать с 1 и 3?

Гораздо интереснее вопрос что делать с пользователем, который кричит "ну я же вставлял,
куда она делась?"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714580
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovmaverick2104Через что это реализуется ?

RAISE/EAISE_APPLICATION_ERROR.

maverick2104инсерт вставляет три строки, во второй есть %, что делать с 1 и 3?

Гораздо интереснее вопрос что делать с пользователем, который кричит "ну я же вставлял,
куда она делась?"


Я тот пользователь.

Есть джоб который инсертит в эту таблицу несколько сотен строчек ежедневно , некоторые из них ( только в одной колонке ) содержат % . Мне нужty триггер который пропустит эти строчки и выведет мне их в переменную .

Либо второй вариант , он автоматом лечил эти строчки , то есть заменяет % пробелом .
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714582
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104Dimitry SibiryakovГораздо интереснее вопрос что делать с пользователем, который кричит "ну я же вставлял,
куда она делась?"


Я тот пользователь.


А что мешает убрать ненужные строки на этапе подготовки данных вставки?
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714584
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104Мне нужty триггер который пропустит эти строчки и выведет мне их в
переменную .

Всё равно не вижу ничего интересного. Ты вообще документацию читать пытался? Или уснул,
так и не добравшись до error_logging_clause?

maverick2104Либо второй вариант , он автоматом лечил эти строчки , то есть заменяет % пробелом .

Это ещё менее интересно, простой REPLACE().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714586
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLermaverick2104пропущено...


Я тот пользователь.


А что мешает убрать ненужные строки на этапе подготовки данных вставки?

Нет возможности .
...
Рейтинг: 0 / 0
Триггер на запрет инсерта
    #39714588
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
create table my_table ( a number , b varchar2(10) constraint b_chk check (instr(b,'%')=0) )
;
Table created

exec dbms_errlog.create_error_log( 'my_table', 'my_table_ERR' );
PL/SQL procedure successfully completed

insert into my_table(a,b)
select rownum, 'val'||rownum||case mod(rownum,3) when 0 then '%' end
from dual connect by level < 10
log errors into my_table_ERR
 REJECT LIMIT unlimited
;
6 rows inserted

select * from my_table;
    A B
----- -----
    1 val1
    2 val2
    4 val4
    5 val5
    7 val7
    8 val8
6 rows selected

select a,b,ORA_ERR_NUMBER$ from my_table_err;
A     B     ORA_ERR_NUMBER$
----- ----- ---------------
3     val3%            2290
6     val6%            2290
9     val9%            2290

SQL> 
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер на запрет инсерта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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