|
|
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Можно-ли это осуществить, если можно, то как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 07:38 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Huh? А зачем это тебе? Первый селект Код: plaintext 1. 2. 3. ...update... Второй селект Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2002, 23:44 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Или тебе нужно что-то иное, типа использования динамического SQL в триггере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 02:08 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Именно о тригере и идет речь. Нужно что-то типа execute immediate 'insert into table1( col1, col2)values(:new.col1, :new.col2); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 16:34 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
ну тогда и пиши execute immediate 'insert into table1( col1, col2)values('|| :new.col1||','|| :new.col2||')'; если :new.col1 строковое, то довавь необходимое кол-во кавычек или вообще используй DBMS_SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2002, 17:13 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Все дело в том что заранее не известны столбцы таблицы. Я формирую строку инсерта на основании данных из sys.all_tab_columns ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 11:50 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Что значит неизвестны? Это же из триггера на таблицу, а в нем ты не можешь не знать типы полей ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2002, 13:51 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Вы случаем не пытаетесь решить проблему универсального журналирующего триггера? То есть такого, который сам бы адаптировался к изменению структуры таблицы на которую повешен??? Если да, то поделитесь результатом, please... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2002, 05:20 |
|
||
|
:OLD, :NEW в динамическом SQL
|
|||
|---|---|---|---|
|
#18+
Предлагаю возобновить тему :-)) Обладатели Oracle ниже 8i, могут не беспокоиться и дальше не читать... У меня тут бредовая мысль... Например, хочется знать все изменения в некоторой схеме (у меня она совпадает с ником m_kus ). Пишу что-то подобное: Код: plaintext 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. Далее создаю такой триггер на создание/изменение/удаление таблицы: Код: plaintext 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. Этот триггер генерирует другой триггер, который достаточно подвесить на созданную таблицу (к сожалению мне не удалось создать его с помощью EXECUTE COMMAND, где Command собрана из строчек, выведенных на экран)... Вот, всё не идеально, требует доработки и т.д. Например, можно из соответствующих представлений читать данные о первичном ключе и эти поля писать каким-либо отдельным образом... По разному можно производить саму запись в лог (по записи на поле или одну запись в лог на одну изменяемую запись) и т. д. Естественно, надо чтобы таблица с логом была в отдлельной схеме или на неё триггер не создавался... :)) Можно сделать вспомогательные таблицы, в которых перечислены таблицы (и поля), которые подвережены записи в лог. Если не удасться запускать прямо из триггера, тогда можно и так: Код: plaintext 1. 2. 3. 4. 5. 6. Правда это всё уже ничуть не лучше ручного запуска процедуры генерирующей триггер процедуры (возможность её написания я не подвергаю сомнения), что уже не так удобно, так как не всякий оболочку типа ErWin-а можно заставить изменить сценарий создания таблицы... Хочу выслушать ваши мнения и предложения, может кто-то видел/использовал что-то подобное, так пусть просвятит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 14:39 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32044847&tid=1992006]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
134ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 396ms |

| 0 / 0 |
