|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
по этой таблице виртуальные столбцы: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Когда-то я создавал function-based индексы. Потом удалил. Но почему-то остались эти столбцы. Недавно обнаружил ошибки в алерт-логе. Подсчет числа строк по двум столбцам дает ошибку: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Как бы преодолеть эти ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 13:30 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Дропнуть эти атрибуты пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 13:42 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski, поменять ф-лу (убрать to_number) не пущает? ALTER TABLE zzz MODIFY ... ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 14:08 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
andrey_anonymous, не пробовал. Это как? Так? Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 14:13 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Stax, с 'to_number' все нормально: Код: plsql 1. 2. 3. 4. 5.
проблема с двумя другими: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 14:15 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski andrey_anonymous, не пробовал. Это как? Так? Код: plsql 1.
ой alter table tab drop (column_name_list) ; ps я имел ввиду поменять формулы в колонках .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 14:43 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski проблема с двумя другими: их и поменяйте (если пущает) .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 14:44 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Stax, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 14:50 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Stax, Код: plsql 1.
Угу. Мы из-за этого как-то довольно большую таблицу были вынуждены пересобрать. Эти неубиваемые колонки помимо прочего влияют на операции с разделами (exchande partition). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:04 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Наивный вопрос -- после того как удалил FBI корзину не чистил? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:23 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, вроде нет, не чистил. Это было давненько. Сейчас чего-то лежит в корзине. Помимо меня там разработчики могут чего-то создавать-удалять Код: plsql 1. 2. 3. 4. 5.
сейчас почищу. Спасибо за совет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:27 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, почистил, не помогло. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:31 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Ну, это было как первичное предположение для штатного вмешательства :( Скорее всего, действительно придется чистить словарь ручками Я бы протестировал на копии всякие MOVE/REBUILD (до и после правки словаря) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:35 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
И еще, буквально недавно грешил на корзину (по поводу AQ) и в одной из нот было сказано, что PURGE DBA_RECYCLEBIN не сработает, надо зайти тем самым юзером-владельцем (речь шла про SYSTEM) и сделать PURGE RECYCLEBIN ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:38 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, да, все это делал и под изером: Код: plsql 1. 2. 3. 4. 5. 6.
и под сисом: Код: plsql 1. 2. 3. 4. 5. 6.
не помогло. Виртуальные толбцы никуда не делись: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:45 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Когда-то я создавал function-based индексы. Потом удалил. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:46 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Elic maxski Когда-то я создавал function-based индексы. Потом удалил. Виталь, я эту беду лично ловил на экзадате 12.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:50 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Stax, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4.
я не ДБА поетому просто подозревал что не пустит на ALTER TABLE zzz MODIFY/ RENAME COLUMN тож сорится? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:50 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, есть вариант скопировать таблицу и потом переименовать. Либо что-то со делать со словарем. Вот последовательность, что оракл показывает если включить трассировку 10046: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
не приводил запросы к xdb и partobj$ (так как таблица непартиционирована) какие таблицы словаря затрагиваются при 'drop' не показывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 15:56 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Elic, сейчас индексы такие: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
но старые виртуальные колонки живут: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:04 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Stax, это строчку в col$ менять? DEFAULT$ с Код: plsql 1.
на что-н другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:08 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski, у тебя индекс IDX_USERS_ID_USER явно ссылается на столбец SYS_NC00045$ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:10 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Stax, это строчку в col$ менять? Хочется экстрима - на тесте поднять копию и попробовать удалить напрочь. Хочется штатного решения - пересоздать таблицу, если резерв пространства под данные есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:10 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski, вообще, тырнет несколько мотивов танца с бубном на эту тему дает. Кто-то силу удара в сам бубен меняет, а кто-то пытается подпрыгивать на ритуальном ходу по кругу. мне показался может быть сработающим такой вариант камлания: 1) удалить индексы 2) переименовать столбцы - alter table rename column 3) установить их в неиспользуемые - ALTER TABLE...SET UNUSED (columnlist) 4) дропнуть неиспользуемые с явно указанным размером батча для чекпойнта ALTER TABLE ... DROP UNUSED COLUMNS CHECKPOINT 250; сам не сталкивался, чисто серфинг. если вдруг сработает, не знаю, какой из элементов танца на самом деле критический - второй или четвертый... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:19 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Stax, это строчку в col$ менять? DEFAULT$ с Код: plsql 1.
на что-н другое? словарь править несколько стремно но уж если править, то я б для начала убрал TO_NUMBER на SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:21 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, move прошел без проблем (копирование екстентов) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Виртуальные столбцы никуда не делись. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:25 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
booby maxski, у тебя индекс IDX_USERS_ID_USER явно ссылается на столбец SYS_NC00045$ Ну да, и что? С ним-то проблем нет. Проблемы с виртуальными колонками SYS_NC00046$ SYS_NC00047$ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:30 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Проблемы с виртуальными колонками Судя по move вы вполне можете себе позволить пересоздать таблицу и перестать ломать мозг. Хотя лично мне интересно было бы посмотреть на результаты шаманского танца от booby ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:33 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Stax, мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках. Если вы в словаре поменяете, type# (с number на char) и defaults# (в null), то как у вас данные в блоках будут интерпретированы? Похоже на блудняк. Проще сделать копию таблицы и потом переименовать ее. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:37 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
andrey_anonymous, для удовлетворения любопытства: Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:48 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski, Шаг с переименованием пропустили. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:49 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski, вообще-то предлагалось сначала перименовать... впрочем, в любом случае - без обещаний успеха. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 16:50 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Stax, мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках. Если вы в словаре поменяете, type# (с number на char) и defaults# (в null), то как у вас данные в блоках будут интерпретированы? Похоже на блудняк. Проще сделать копию таблицы и потом переименовать ее. понятно что есть риск изменять словарь напряму если не хотите менять и тип, поменять формулу напр на nvl(id,0)+1 откуда то он знает что system-generated мож признак поменять ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 17:10 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
booby, вроде как другое решение еще есть: проапдейтить в виртуальных колонках значения на null. И чтобы при апдейте не возникала ошибка (ORA-22839: Direct updates on SYS_NC columns are disallowed), предлагают "Hence before updating SYS_NC* column, Events 22838 should be set to turn off this check.": Код: plsql 1.
Т.е без затрагивания словаря. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 17:15 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках. maxski проапдейтить в виртуальных колонках значения на null. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 17:26 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
env maxski, Шаг с переименованием пропустили. Переименовать дало, установить в UNUSABLE не дало. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 17:31 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Elic maxski мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках. maxski проапдейтить в виртуальных колонках значения на null. И что же это? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 17:33 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski ElicТы, похоже, не понимаешь, что значит "виртуальность" столбца. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 17:52 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:00 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski, А просто Код: plsql 1.
в таком варианте не отработает, если индексов действительно уже нет? упд. Компрессии нет на таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:01 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
env maxski, А просто Код: plsql 1.
в таком варианте не отработает, если индексов действительно уже нет? упд. Компрессии нет на таблице? п4 автор4) дропнуть неиспользуемые с явно указанным размером батча для чекпойнта ALTER TABLE ... DROP UNUSED COLUMNS CHECKPOINT 250; .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:11 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
env maxski, А просто Код: plsql 1.
в таком варианте не отработает, если индексов действительно уже нет? упд. Компрессии нет на таблице? так они не unused. Не дает сделать unused ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:17 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski, компрессии нет ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:18 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
У разработчиков сначала была одна логика, где какой-то коэффициент "сидел" в строке, который они извлекали по substr. И у них медленно работало, так как индекс по pcomment не работал. Я им сделал function-based index. Как-то получилось, что я его создавал, он подвис. Потом я его удалил, и снова создал. (кажется так было). Потом они логику снова поменяли. И в pcomment стали сыпаться какие-то другие строки. Вот на чем это все валится: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
substr-instr "Introducer OB-" никак в to_number не переведешь. Поэтому "invalid number" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:28 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
Elic maxski пропущено... И что же это? не помогло Вот это вот Код: plsql 1.
как-то приблизило. И то непонятно какие значения возвращает? Из сохраненных в индексе? Код: plsql 1. 2. 3. 4. 5.
"S00046" - это уже переименовынный столбец мз "SYS_NC00046$". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:39 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski Как бы преодолеть эти ошибки? может данные кривые сначала временно убрать, не? Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 18:44 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
DВА, там логика поменялась. Поэтому там данные другие. Из них никак нельзя извлечь number. Поэтому их нельзя менять, так как запросы идут постоянно. В выходной попробую скопировать и переименовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 19:01 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski В выходной попробую скопировать и переименовать. Вы же move сегодня ничтоже сумняшеся зарядили, зачем ждать выходных? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 19:08 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
maxski DВА, там логика поменялась. Поэтому там данные другие. Из них никак нельзя извлечь number. Поэтому их нельзя менять, так как запросы идут постоянно. В выходной попробую скопировать и переименовать. тогда online redefinition вам в помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 19:44 |
|
При сборе статистики "ORA-01722: invalid number"
|
|||
---|---|---|---|
#18+
andrey_anonymous maxski В выходной попробую скопировать и переименовать. Вы же move сегодня ничтоже сумняшеся зарядили, зачем ждать выходных? Ну, небольшая задержка, некритична. Критично, если навставляют строк пока я буду копировать, создавать индексы и ключи, а потом к ним будут обращаться, а я подменю копией, потом надо будет синхронизировать, а мне все это лень. Срочности нет. Так, что статистика дособерется потом. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 21:42 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1880762]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 201ms |
0 / 0 |