Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Replace не работает в триггере?  [new]
dara-ra
Guest
Есть в таблице поле payee тип varchar(200). Нас интересует строка, которая содержит информацию: 'бла бла бла России'.
Задача стоит заменить ентер в строке на пробел. Но ради эксперемента делаю так.
В триггере BefroeUpdate пишу
:new.payee := replace(:new.payee,'Р','р');

При попытке редактировать поле payee (прямо в базе добавляю любой символ в конец строки), никаких изменений после коммита не происходит.
replace не работает в триггере?
3 фев 15, 10:39    [17210629]     Ответить | Цитировать Сообщить модератору
 Re: Replace не работает в триггере?  [new]
blkangel
Member

Откуда:
Сообщений: 1982
dara-ra
Есть в таблице поле payee тип varchar(200). Нас интересует строка, которая содержит информацию: 'бла бла бла России'.
Задача стоит заменить ентер в строке на пробел. Но ради эксперемента делаю так.
В триггере BefroeUpdate пишу
:new.payee := replace(:new.payee,'Р','р');

При попытке редактировать поле payee (прямо в базе добавляю любой символ в конец строки), никаких изменений после коммита не происходит.
replace не работает в триггере?


Попробуй after update
3 фев 15, 10:48    [17210675]     Ответить | Цитировать Сообщить модератору
 Re: Replace не работает в триггере?  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1639
dara-ra, ну когда уже приучимся test case давать?
Видимо, тогда же, когда и заповеди соблюдать - 2 тыщи лет ждать, и все без толку.

SQL> create table test(t varchar2(10));
Table created
SQL> create trigger ttt before insert or update on test for each row
  2  
  3  begin
  4      :new.t := replace(:new.t, 'Р', 'р');
  5  end;
  6  /
Trigger created

SQL> insert into test values('Россия');
1 row inserted

SQL> select * from test;
T
----------
россия
3 фев 15, 10:49    [17210677]     Ответить | Цитировать Сообщить модератору
 Re: Replace не работает в триггере?  [new]
dara-ra
Guest
Прошу прощения за глупый вопрос. Причина была в том, что триггер прописан только для двух полей и мое "payee" в списке не было прописано.
Всем спасибо.
3 фев 15, 12:26    [17211221]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить