|
|
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
Напомните в каких сдучаях невозможно создать таблицу за одно выполнение? Например, для получения скрипта Код: plsql 1. 2. 3. 4. 5. 6. надо выполнить два шага Код: plsql 1. 2. 3. 4. 5. 6. + Код: plsql 1. Какие еще бывают случаи? Хорошо известен пример про not null колонку с данными, которая создается в три шага: добавление колонки, заполнение, добавление ограничения. Но особо интересуют примеры пустых таблиц. Помню что-то orawish перечислял в топике про синхронизацию DDL лет пять назад, но не смог найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 16:55 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
Глупый ТелевизорНапример, для получения скрипта надо выполнить два шага He надо: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Или просто: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 17:12 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
SY, Что прикольно - таблицы создаюстся не эквивалентные. В случае каста - значение обрезается после первых 100 знаков, в случае с modify - похоже Oracle его по факту игнорирует, хотя в метаданных вроде бы ограничение и есть... Regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 17:28 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
SY, Ок. Принято. На самом деле вопрос возник, когда не смогли применить результат dbms_metadata.get_ddl как есть. Стало интересно на что еще можно напороться. И вроде встречался с аналогичными проблемами ранее, но конкретные примеры пока не могу вспомнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 17:35 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
Maxim DemenkoSY, Что прикольно - таблицы создаюстся не эквивалентные. Да, похоже на баг в ALTER TABLE MODIFY. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 17:56 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
SY, Да, условие на размерность виртуальной колонки проверяется только при создании таблицы, ну и насколько я понимаю - такие таблицы должны быть непереносимы штатными средствами (e.g. expdp/impdp). Regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 18:02 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
Maxim DemenkoДа, условие на размерность виртуальной колонки проверяется только при создании таблицы Несовсем: Код: 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. Т.e. MODIFY не дает изменить тип/размерность если поле используется в виртуальной колонке но почему-то не для самой виртуальной колонке. Хотя тут несколько иная ситуация. Уменьшить размерность можно только если размерность значений поля для всех строк <= новая размерность Код: 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. 37. 38. 39. 40. 41. 42. 43. 44. Т.e MODIFY ползает по блокам таблицы и проверяет хранящуюся в блоках длину поля VARCHAR2. Значения и соответственно длина виртуального поля нигде не хранится - значение вычиcляется каждый раз при SELECTe. Так что либо MODIFY не должен разрешать уменьшить размерность виртуального поля, либо INSERT/UPDATE должен его вычиcлять и выдавать ошибку длины. Но тогда по-другому станет работать и: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Так-что MODIFY по-идее должен ползать по блокам таблицы и проверяет хранящуюся в блоках длину поля VARCHAR2 для обычных полей и SELECT поле для виртуальных. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2016, 18:40 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
Глупый Телевизор.. Помню что-то orawish перечислял в топике про синхронизацию DDL лет пять назад, но не смог найти. про какой топик речь, к сожалению, нет у меня идей попробуйте порыться там ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 14:33 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
orawishГлупый Телевизор.. Помню что-то orawish перечислял в топике про синхронизацию DDL лет пять назад, но не смог найти. про какой топик речь, к сожалению, нет у меня идей попробуйте порыться там Слова ddl там нет, но то что подразумевал нашел 4549736 Если таблицы пустые , то вся эта синхронизация автоматизируется без особых трудностей. Для сиквенсов тоже уже добавили усовершенствования. В чем проблема с pl/sql непонятно - все просто пересоздается, где надо с force. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 14:45 |
|
||
|
Многоходовочка
|
|||
|---|---|---|---|
|
#18+
Глупый Телевизорorawishпропущено... про какой топик речь, к сожалению, нет у меня идей попробуйте порыться там Слова ddl там нет, но то что подразумевал нашел 4549736 Если таблицы пустые , то вся эта синхронизация автоматизируется без особых трудностей. Для сиквенсов тоже уже добавили усовершенствования. В чем проблема с pl/sql непонятно - все просто пересоздается, где надо с force.Еще один пример с вирт колонками Таблица ссылается на саму себя по функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2016, 14:24 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39342802&tid=1886838]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 419ms |

| 0 / 0 |
