powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / При сборе статистики "ORA-01722: invalid number"
25 сообщений из 51, страница 2 из 3
При сборе статистики "ORA-01722: invalid number"
    #40012711
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

move прошел без проблем (копирование екстентов)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
13:22:00 SQL> alter table data.USERS move  tablespace USERS2;

Table altered.

Elapsed: 00:00:05.11
13:22:13 SQL> alter table data.USERS move  tablespace USERS;

Table altered.



Виртуальные столбцы никуда не делись.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012713
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
maxski,

у тебя индекс IDX_USERS_ID_USER явно ссылается на столбец SYS_NC00045$


Ну да, и что? С ним-то проблем нет.
Проблемы с виртуальными колонками
SYS_NC00046$
SYS_NC00047$
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012716
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
Проблемы с виртуальными колонками

Судя по move вы вполне можете себе позволить пересоздать таблицу и перестать ломать мозг.
Хотя лично мне интересно было бы посмотреть на результаты шаманского танца от booby
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012719
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках. Если вы в словаре поменяете, type# (с number на char) и defaults# (в null), то как у вас данные в блоках будут интерпретированы?
Похоже на блудняк.

Проще сделать копию таблицы и потом переименовать ее.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012724
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

для удовлетворения любопытства:
Код: plsql
1.
2.
3.
4.
5.
13:23:02 SQL> ALTER TABLE data.users SET UNUSED ("SYS_NC00046$") ;
ALTER TABLE data.users SET UNUSED ("SYS_NC00046$")
                                      *
ERROR at line 1:
ORA-12996: cannot drop system-generated virtual column
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012726
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski,

Шаг с переименованием пропустили.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012727
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski,

вообще-то предлагалось сначала перименовать...

впрочем, в любом случае - без обещаний успеха.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012743
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
Stax,

мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках. Если вы в словаре поменяете, type# (с number на char) и defaults# (в null), то как у вас данные в блоках будут интерпретированы?
Похоже на блудняк.

Проще сделать копию таблицы и потом переименовать ее.


понятно что есть риск изменять словарь напряму

если не хотите менять и тип, поменять формулу напр на nvl(id,0)+1

откуда то он знает что system-generated мож признак поменять

.....
stax
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012745
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
 SQL>ALTER SYSTEM SET EVENTS '22838 TRACE NAME CONTEXT LEVEL 1,FOREVER';



Т.е без затрагивания словаря.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012754
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках.
maxski
проапдейтить в виртуальных колонках значения на null.
Ты, похоже, не понимаешь, что значит "виртуальность" столбца.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012757
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
maxski,

Шаг с переименованием пропустили.


Переименовать дало, установить в UNUSABLE не дало.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012759
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
maxski
мне кажется, что словарь говорит инстансу как интерпретировать данные, что лежать в блоках.
maxski
проапдейтить в виртуальных колонках значения на null.
Ты, похоже, не понимаешь, что значит "виртуальность" столбца.


И что же это?
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012771
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
ElicТы, похоже, не понимаешь, что значит "виртуальность" столбца.
И что же это?Когда попробуешь "проапдейтить" - поймёшь.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012776
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
Elic
"виртуальность"

И что же это?

YouTube Video
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012780
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski,

А просто
Код: plsql
1.
alter table .. drop unused columns

в таком варианте не отработает, если индексов действительно уже нет?

упд. Компрессии нет на таблице?
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012785
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
maxski,

А просто
Код: plsql
1.
alter table .. drop unused columns

в таком варианте не отработает, если индексов действительно уже нет?

упд. Компрессии нет на таблице?


п4

автор4) дропнуть неиспользуемые с явно указанным размером батча для чекпойнта
ALTER TABLE ... DROP UNUSED COLUMNS CHECKPOINT 250;


....
stax
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012791
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
maxski,

А просто
Код: plsql
1.
alter table .. drop unused columns

в таком варианте не отработает, если индексов действительно уже нет?

упд. Компрессии нет на таблице?


так они не unused.
Не дает сделать unused
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012792
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski,

компрессии нет
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012798
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У разработчиков сначала была одна логика, где какой-то коэффициент "сидел" в строке, который они извлекали по substr.
И у них медленно работало, так как индекс по pcomment не работал.
Я им сделал function-based index. Как-то получилось, что я его создавал, он подвис. Потом я его удалил, и снова создал. (кажется так было).
Потом они логику снова поменяли. И в pcomment стали сыпаться какие-то другие строки.

Вот на чем это все валится:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
15:19:35 SQL> select rowid rid, id_user,  pcomment from data.users where rownum < 10 ;

RID		   ID_USER  PCOMMENT
------------------ -------- ----------------------------------------------------------------
AAFlxUAAqAAERaEAAA 1740
AAFlxUAAqAAERaEAAB 1744     Introducer OB-
AAFlxUAAqAAERaEAAC 1745
AAFlxUAAqAAERaEAAD 1746
AAFlxUAAqAAERaEAAE 1748
AAFlxUAAqAAERaEAAF 1753
AAFlxUAAqAAERaEAAG 1754
AAFlxUAAqAAERaEAAH 1757
AAFlxUAAqAAERaEAAI 1758     P9 AB DB

9 rows selected.



substr-instr "Introducer OB-" никак в to_number не переведешь. Поэтому "invalid number"
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012803
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
maxski
пропущено...
И что же это?
Когда попробуешь "проапдейтить" - поймёшь.


не помогло

Вот это вот
Код: plsql
1.
"Indexes defined against virtual columns are equivalent to function-based indexes."


как-то приблизило. И то непонятно какие значения возвращает? Из сохраненных в индексе?

Код: plsql
1.
2.
3.
4.
5.
15:34:43 SQL> select rowid rid,id_user, pcomment, "S00046" from data.users where  rownum < 2;

RID		   ID_USER  PCOMMENT								 S00046
------------------ -------- ---------------------------------------------------------------- ----------
AAFlxUAAqAAERaEAAA 1740



"S00046" - это уже переименовынный столбец мз "SYS_NC00046$".
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012806
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski

Как бы преодолеть эти ошибки?



может данные кривые сначала временно убрать, не?

Код: plsql
1.
2.
3.
4.
5.
 
select TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))  from table

ERROR at line 1:
ORA-01722: invalid number
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012816
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА,

там логика поменялась. Поэтому там данные другие. Из них никак нельзя извлечь number.
Поэтому их нельзя менять, так как запросы идут постоянно.
В выходной попробую скопировать и переименовать.
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012820
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
В выходной попробую скопировать и переименовать.

Вы же move сегодня ничтоже сумняшеся зарядили, зачем ждать выходных?
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012835
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
DВА,

там логика поменялась. Поэтому там данные другие. Из них никак нельзя извлечь number.
Поэтому их нельзя менять, так как запросы идут постоянно.
В выходной попробую скопировать и переименовать.


тогда online redefinition вам в помощь
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012863
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
maxski
В выходной попробую скопировать и переименовать.

Вы же move сегодня ничтоже сумняшеся зарядили, зачем ждать выходных?


Ну, небольшая задержка, некритична. Критично, если навставляют строк пока я буду копировать, создавать индексы и ключи, а потом к ним будут обращаться, а я подменю копией, потом надо будет синхронизировать, а мне все это лень. Срочности нет. Так, что статистика дособерется потом. ))
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 2 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / При сборе статистики "ORA-01722: invalid number"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]