Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 trigger instead of. Возвращаемое значение.  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
Имеется представление vv на основе объединения двух таблиц bt_1 и bt_2 и
триггер "instead of delete":
set echo on
spool quest.log
drop table bt_1;
create table bt_1 (a number,b number);
drop table bt_2;
create table bt_2 (a number,b number);
create or replace view vv as (
select * from bt_1
union all
select * from bt_2);
create or replace trigger vv_del_trig
instead of delete on vv
        for each row
        begin
                delete from bt_1 where a=:old.a;
        end;
/
После прогона теста:
insert into bt_1 values(1,1);
insert into bt_1 values(3,3);
insert into bt_2 values(2,2);
insert into bt_2 values(4,4);
commit;
select * from vv;
delete from vv where a=1;
select * from vv;
delete from vv where a=2;
select * from vv;



sqlplus scott/tiger
...
Присоединен к:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
...
scott@ora10g>@quest


Получаем:

...
Фиксация обновлений завершена.

bav@ora10g> select * from VV;

A B
---------- ----------
1 1
3 3
2 2
4 4

scott@ora10g> delete from VV where a=1;

1 строка удалена.


scott@ora10g> select * from VV;

A B
---------- ----------
3 3
2 2
4 4

scott@ora10g> delete from VV where a=2;

1 строка удалена.

scott@ora10g> select * from VV;

A B
---------- ----------
3 3
2 2
4 4

scott@ora10g> exit
...
Что нужно добавить в триггер (или еще куда нибудь), чтобы во втором случае получалось
бы правильное значение удаленных строк(то есть 0) ?
Заранее спасибо.
10 дек 07, 14:15    [5026864]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
ERROR MESSAGE
Member

Откуда: Москва
Сообщений: 376
А ты нам, мил человек, расскажи чем тебе не нравится то, как сейчас работает.
И ещще ознакомь публику с тем, как ты это использовать мечтаешь?
10 дек 07, 14:24    [5026948]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
В триггере надо удалять из обоих таблиц
10 дек 07, 14:57    [5027213]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
ERROR MESSAGE
Member

Откуда: Москва
Сообщений: 376
Jannny
В триггере надо удалять из обоих таблиц
Не фантазируй, сударушка.
Пусть avb1003 сам отвечает на вопросы.
10 дек 07, 15:04    [5027282]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
ERROR MESSAGE
А ты нам, мил человек, расскажи чем тебе не нравится то, как сейчас работает.
И ещще ознакомь публику с тем, как ты это использовать мечтаешь?

А почему нельзя ? Вот так вот и хочу использовать. Есть уже много кода работающего с VV
как с таблицей (И еще с рядом аналогичных или совсем других таблиц ).
Код сырой настолько , что на него нет даже письменных спецификаций.
Для простоты почти все тесты запускаются "c нуля", чтобы не разбираться, что
напортила очередная ошибка. Между тем есть идеи, что наша жизнь упростится
если в таблице VV будут содержаться определенные, почти фиксированные данные.
Загрузка этих данных у меня сейчас занимает сутки. Поэтому вот так вот и мечтаю:
Запускать старые тесты и иметь постоянную, уже загруженную часть.
Естественно хочется чтобы все было "по-настоящему", без модификации уже написанного
кода.

Jannny
В триггере надо удалять из обоих таблиц
Понятно, что мне это не
подходит. На всякий случай я уже проверил добавку в триггер
delete from bt_2 where 1=2;
10 дек 07, 15:18    [5027431]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Пардон, это был ответ на примере, а не на вопрос :)

Не снимая вопрос - чем так травмирует,
avb1003
Что нужно добавить в триггер (или еще куда нибудь), чтобы во втором случае получалось
бы правильное значение удаленных строк(то есть 0) ?
ничего не получится - отображается, к скольким строкам представления применена операция удаления (вне зависимости от того, как именно Вы ее(операцию) потом трансформировали)
10 дек 07, 15:23    [5027481]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
ERROR MESSAGE
Member

Откуда: Москва
Сообщений: 376
avb1003
ERROR MESSAGE
А ты нам, мил человек, расскажи чем тебе не нравится то, как сейчас работает.
И ещще ознакомь публику с тем, как ты это использовать мечтаешь?

А почему нельзя ? Вот так вот и хочу использовать. Есть уже много кода работающего с VV
как с таблицей (И еще с рядом аналогичных или совсем других таблиц ).
Код сырой настолько , что на него нет даже письменных спецификаций.
Для простоты почти все тесты запускаются "c нуля", чтобы не разбираться, что
напортила очередная ошибка. Между тем есть идеи, что наша жизнь упростится
если в таблице VV будут содержаться определенные, почти фиксированные данные.
Загрузка этих данных у меня сейчас занимает сутки. Поэтому вот так вот и мечтаю:
Запускать старые тесты и иметь постоянную, уже загруженную часть.
Естественно хочется чтобы все было "по-настоящему", без модификации уже написанного
кода.
Твой поток сознания не принес никакой информации.
Ты, мил человек, зачем-то рассказал про свои общие беды - бог с ними.

Прояняю по-простому:
Расскажи что ты хочешь увидеть / получить, выполнив приведенные тобой команды.
Не стесняйся, считай, что вокруг тебя собрались полные дебилы в точных науках
(люди с гуманитакрным складом ума) и на пальцах-примерах объясни доходчиво,
что именно ты хочешь получить.
10 дек 07, 15:27    [5027526]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
Jannny
Пардон, это был ответ на примере, а не на вопрос :)

Не снимая вопрос - чем так травмирует,
avb1003
Что нужно добавить в триггер (или еще куда нибудь), чтобы во втором случае получалось
бы правильное значение удаленных строк(то есть 0) ?
ничего не получится - отображается, к скольким строкам представления применена операция удаления (вне зависимости от того, как именно Вы ее(операцию) потом трансформировали)

Это ответ. Спасибо.
10 дек 07, 15:30    [5027545]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
avb1003
Jannny
ничего не получится
Это ответ. Спасибо.
Не, ну если Вам нужно только увидеть, то можно дописать
dbms_output.put_line('На самом деле - '||sql%rowcount);
в триггер
10 дек 07, 15:36    [5027613]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
ERROR MESSAGE

..........

Твой поток сознания не принес никакой информации.
Ты, мил человек, зачем-то рассказал про свои общие беды - бог с ними.

Прояняю по-простому:
Расскажи что ты хочешь увидеть / получить, выполнив приведенные тобой команды.
Не стесняйся, считай, что вокруг тебя собрались полные дебилы в точных науках
(люди с гуманитакрным складом ума) и на пальцах-примерах объясни доходчиво,
что именно ты хочешь получить.

Ну извините ради бога. Нету времени, чтобы еще более доходчиво.
Jannny
avb1003
Jannny
ничего не получится
Это ответ. Спасибо.
Не, ну если Вам нужно только увидеть, то можно дописать
dbms_output.put_line('На самом деле - '||sql%rowcount);
в триггер

Еще раз спасибо. Но честное, слово про dbms_output.put_line я уже давно знаю.
10 дек 07, 15:43    [5027671]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
ERROR MESSAGE
Member

Откуда: Москва
Сообщений: 376
avb1003
ERROR MESSAGE

..........
Твой поток сознания не принес никакой информации.
Ты, мил человек, зачем-то рассказал про свои общие беды - бог с ними.

Прояняю по-простому:
Расскажи что ты хочешь увидеть / получить, выполнив приведенные тобой команды.
Не стесняйся, считай, что вокруг тебя собрались полные дебилы в точных науках
(люди с гуманитакрным складом ума) и на пальцах-примерах объясни доходчиво,
что именно ты хочешь получить.

Ну извините ради бога. Нету времени, чтобы еще более доходчиво.
"Нету хода - не вистуй!"
Нету времени - учить выражаться кратко и ясно, а не сливом своего потока сознания догадок на всех вокруг
10 дек 07, 16:13    [5027983]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
ERROR MESSAGE
avb1003
ERROR MESSAGE

..........
Твой поток сознания не принес никакой информации.
Ты, мил человек, зачем-то рассказал про свои общие беды - бог с ними.

Прояняю по-простому:
Расскажи что ты хочешь увидеть / получить, выполнив приведенные тобой команды.
Не стесняйся, считай, что вокруг тебя собрались полные дебилы в точных науках
(люди с гуманитакрным складом ума) и на пальцах-примерах объясни доходчиво,
что именно ты хочешь получить.

Ну извините ради бога. Нету времени, чтобы еще более доходчиво.
"Нету хода - не вистуй!"
Нету времени - учить выражаться кратко и ясно, а не сливом своего потока сознания догадок на всех вокруг

Да успокойтесь вы. Jannny уже все понял и даже объяснил.
10 дек 07, 16:35    [5028158]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
гггг
Guest
avb1003

Да успокойтесь вы. Jannny уже все понялА и даже объяснилА.
10 дек 07, 16:55    [5028313]     Ответить | Цитировать Сообщить модератору
 Re: trigger instead of. Возвращаемое значение.  [new]
avb1003
Member

Откуда: Москва
Сообщений: 417
гггг
avb1003

Да успокойтесь вы. Jannny уже все понялА и даже объяснилА.

Это интересно. Буду знать.
10 дек 07, 17:01    [5028366]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить