|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
Добрый день. В случае rename таблиц нужно сделать кое-какие изменения в базе. Для этого нужно знать старое и новое значение таблицы. Проблема в том, что в аттрибутах AFTER RENAME триггера есть только один атрибут на эту тему - ora_dict_obj_name, он возвращает старое название таблицы. Подскажите - можно ли как-то узнать новое название таблицы в AFTER RENAME триггере??? Oracle 9.2. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2007, 15:03 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
По мотивам вот этих примеров . Код: 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.
А дальше в триггере анализируйте строку sql_text(1). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2007, 15:37 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
ДВК, спасибо ! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2007, 16:10 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
Добрый вечер всем! А можно в таком случае получить штатными средствами новое имя таблицы в oracle 11? Или лучше использовать регэксп, который выбирает последнее слово из sql_text(1)? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2020, 20:01 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
Использовала этот как я понимаю хак. Работает. А штатные средства есть? Как :old и :new? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2020, 20:38 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
AnnitaBells Работает. А умный гору обойдет и выполнит ALTER TABLE ... RENAME TO ...; SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2020, 22:01 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
AnnitaBells, Object_id не меняется ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2020, 23:28 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
xtender Object_id не меняется Но к сожалению Oracle не имеет attribute function ora_dict_obj_id, так-что придется лепить что-то типа: Код: 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. 35. 36.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Ну и, как я уже намекал AnnitaBells переименовать можно и через ALTER TABLE ... RENAME TO ...; Так-что придется писать еще два триггера и все равно придется парсить ALTER. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2020, 00:24 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
SY AnnitaBells Работает. А умный гору обойдет и выполнит ALTER TABLE ... RENAME TO ...; SY. Учла. Сделала регулярное выражение и для этого случая. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2020, 00:46 |
|
Триггер AFTER RENAME
|
|||
---|---|---|---|
#18+
SY, имхо создавать пакет для переменной, лучше в контекстную переменную сохранить: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2020, 04:13 |
|
|
start [/forum/topic.php?fid=52&fpage=39&tid=1880992]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 330ms |
total: | 468ms |
0 / 0 |