Отслеживать, что на самом деле делает SQL-запрос (вставка / обновление / удаление) в Oracle - PullRequest
2 голосов
/ 17 августа 2011

Можно ли каким-то образом регистрировать, к чему приводит SQL-оператор. Например:

INSERT INTO bonus SELECT ename, job, sal, comm FROM emp
WHERE comm > sal * 0.25;

Как вместо этого получить строки, которые фактически вставляются (или обновляются или удаляются, если это другой запрос)просто получить "5 строк вставлено."Было бы особенно хорошо, если бы можно было получить изменение в SQL-форме.

1 Ответ

1 голос
/ 17 августа 2011

Это работает в SQL Server, но, боюсь, я не знаю эквивалента Oracle.(Не то, что вы ищете, я знаю, но это может приблизить вас ...)

create table foo (
    bar int
)

insert into foo
output inserted.*
values (1)

update foo
set bar = bar + 1
output deleted.*, inserted.*

delete
from foo
output deleted.*

Все, что я знаю в Oracle, это переменная sql% rowcount: Количество строкОБНОВЛЕНИЕ в PL / SQL

РЕДАКТИРОВАНИЕ

У Oracle действительно есть эквивалент, предложение RETURNING: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...