powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / При сборе статистики "ORA-01722: invalid number"
51 сообщений из 51, показаны все 3 страниц
При сборе статистики "ORA-01722: invalid number"
    #40012603
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
08:20:59 SQL> exec dbms_stats.gather_table_stats('DATA','USERS',method_opt=>'FOR TABLE FOR ALL COLUMNS SIZE REPEAT', cascade=>true);
BEGIN dbms_stats.gather_table_stats('DATA','USERS',method_opt=>'FOR TABLE FOR ALL COLUMNS SIZE REPEAT', cascade=>true); END;

*
ERROR at line 1:
ORA-12801: error signaled in parallel query server P004
ORA-01722: invalid number
ORA-06512: at "SYS.DBMS_STATS", line 23829
ORA-06512: at "SYS.DBMS_STATS", line 23880
ORA-06512: at line 1


Elapsed: 00:00:01.28



по этой таблице виртуальные столбцы:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
09:24:55 SQL> select col#,INTCOL#, name,TYPE#,DEFAULT$ ,property from col$ where OBJ#=1122418 and col# = 0;

      COL#    INTCOL# NAME				  TYPE# DEFAULT$									   PROPERTY
---------- ---------- ------------------------------ ---------- -------------------------------------------------------------------------------- ----------
	 0	   46 SYS_NC00046$			      2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			     327976
	 0	   45 SYS_NC00045$			      2 TO_NUMBER("ID_USER")								     327976
	 0	   47 SYS_NC00047$			      2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			     327976




Когда-то я создавал 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.
09:19:38 SQL> select count("SYS_NC00045$") from data.users;

COUNT("SYS_NC00045$")
---------------------
	      1404864

Elapsed: 00:00:00.40
09:20:50 SQL> select count("SYS_NC00046$") from data.users;
select count("SYS_NC00046$") from mt4data.users
          *
ERROR at line 1:
ORA-01722: invalid number


Elapsed: 00:00:00.00
09:20:56 SQL> select count("SYS_NC00047$") from data.users;
select count("SYS_NC00047$") from mt4data.users
          *
ERROR at line 1:
ORA-01722: invalid number


Elapsed: 00:00:00.00




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

поменять ф-лу (убрать to_number) не пущает?

ALTER TABLE zzz MODIFY ...

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

не пробовал. Это как?

Так?
Код: plsql
1.
delete from col$ where OBJ#=1122418 and col#=0 and INTCOL# in (46,47);
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012626
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

с 'to_number' все нормально:

Код: plsql
1.
2.
3.
4.
5.
09:19:38 SQL> select count("SYS_NC00045$") from data.users;

COUNT("SYS_NC00045$")
---------------------
	      1404864



проблема с двумя другими:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
09:20:50 SQL> select count("SYS_NC00046$") from data.users;
select count("SYS_NC00046$") from mt4data.users
          *
ERROR at line 1:
ORA-01722: invalid number


Elapsed: 00:00:00.00
09:20:56 SQL> select count("SYS_NC00047$") from data.users;
select count("SYS_NC00047$") from mt4data.users
          *
ERROR at line 1:
ORA-01722: invalid number
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012639
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
andrey_anonymous,

не пробовал. Это как?

Так?
Код: plsql
1.
delete from col$ where OBJ#=1122418 and col#=0 and INTCOL# in (46,47);


ой

alter table tab drop (column_name_list) ;


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

проблема с двумя другими:


их и поменяйте (если пущает)

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

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
11:46:37 SQL> alter table users drop ("SYS_NC00046$");
alter table users drop ("SYS_NC00046$")
                        *
ERROR at line 1:
ORA-12996: cannot drop system-generated virtual column


Elapsed: 00:00:00.34



Код: plsql
1.
2.
3.
4.
$ oerr ora 12996
12996, 00000, "cannot drop system-generated virtual column"
// *Cause:  An attempt was made to drop a virtual column generated by 
//          the system. 
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012657
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
Stax,
Код: plsql
1.
ORA-12996: cannot drop system-generated virtual column


Угу. Мы из-за этого как-то довольно большую таблицу были вынуждены пересобрать.
Эти неубиваемые колонки помимо прочего влияют на операции с разделами (exchande partition).
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012667
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наивный вопрос -- после того как удалил FBI корзину не чистил?
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012670
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

вроде нет, не чистил. Это было давненько.

Сейчас чего-то лежит в корзине. Помимо меня там разработчики могут чего-то создавать-удалять

Код: plsql
1.
2.
3.
4.
5.
12:24:11 SQL> select count(1) from  dba_recyclebin;

  COUNT(1)
----------
       129



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

почистил, не помогло.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
12:28:56 SQL> select col#,name,TYPE#,DEFAULT$ ,property from col$ where OBJ#=1122418 and col# = 0;

      COL# NAME 			       TYPE# DEFAULT$										PROPERTY
---------- ------------------------------ ---------- -------------------------------------------------------------------------------- ----------
	 0 SYS_NC00046$ 			   2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			  327976
	 0 SYS_NC00045$ 			   2 TO_NUMBER("ID_USER")								  327976
	 0 SYS_NC00047$ 			   2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			  327976

Elapsed: 00:00:00.00
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012674
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, это было как первичное предположение для штатного вмешательства :(
Скорее всего, действительно придется чистить словарь ручками
Я бы протестировал на копии всякие MOVE/REBUILD (до и после правки словаря)
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012678
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, буквально недавно грешил на корзину (по поводу AQ) и в одной из нот было сказано, что PURGE DBA_RECYCLEBIN не сработает, надо зайти тем самым юзером-владельцем (речь шла про SYSTEM) и сделать PURGE RECYCLEBIN
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012684
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

да, все это делал и под изером:
Код: plsql
1.
2.
3.
4.
5.
6.
12:28:17 SQL> PURGE RECYCLEBIN;

Recyclebin purged.

Elapsed: 00:00:00.39
12:28:31 SQL> 



и под сисом:
Код: plsql
1.
2.
3.
4.
5.
6.
12:22:07 SQL> PURGE DBA_RECYCLEBIN;

DBA Recyclebin purged.

Elapsed: 00:00:01.89
12:28:43 SQL>



не помогло. Виртуальные толбцы никуда не делись:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
12:28:56 SQL> select col#,name,TYPE#,DEFAULT$ ,property from col$ where OBJ#=1122418 and col# = 0;

      COL# NAME 			       TYPE# DEFAULT$										PROPERTY
---------- ------------------------------ ---------- -------------------------------------------------------------------------------- ----------
	 0 SYS_NC00046$ 			   2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			  327976
	 0 SYS_NC00045$ 			   2 TO_NUMBER("ID_USER")								  327976
	 0 SYS_NC00047$ 			   2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			  327976

Elapsed: 00:00:00.00
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012686
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxski
Когда-то я создавал function-based индексы. Потом удалил.
Уверен?
...
Рейтинг: 0 / 0
При сборе статистики "ORA-01722: invalid number"
    #40012688
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
maxski
Когда-то я создавал function-based индексы. Потом удалил.
Уверен?

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

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
11:46:37 SQL> alter table users drop ("SYS_NC00046$");
alter table users drop ("SYS_NC00046$")
                        *
ERROR at line 1:
ORA-12996: cannot drop system-generated virtual column


Elapsed: 00:00:00.34



Код: plsql
1.
2.
3.
4.
$ oerr ora 12996
12996, 00000, "cannot drop system-generated virtual column"
// *Cause:  An attempt was made to drop a virtual column generated by 
//          the system. 



я не ДБА поетому просто подозревал что не пустит
на ALTER TABLE zzz MODIFY/ RENAME COLUMN тож сорится?


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


есть вариант скопировать таблицу и потом переименовать.

Либо что-то со делать со словарем.

Вот последовательность, что оракл показывает если включить трассировку 10046:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select u.name, o.name, o.namespace, o.type#, decode(bitand(i.property,1024),0,0,1), o.obj# from ind$ i,obj$ o,user$ u where i.obj#=:1 and o.obj#=i.bo# and o.owner#=u.user#

LOCK TABLE  FOR INDEX "MT4DATA"."MY_USERS_FUNC1_IDX" IN EXCLUSIVE MODE  NOWAIT

select u.name, o.name, o.namespace, o.type#, decode(bitand(i.property,1024),0,0,1), o.obj# from ind$ i,obj$ o,user$ u where i.obj#=:1 and o.obj#=i.bo# and o.owner#=u.user#

drop index mt4data.my_users_func1_idx

select text from view$ where rowid=:1



не приводил запросы к xdb и partobj$ (так как таблица непартиционирована)

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

сейчас индексы такие:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  1* SELECT  INDEX_NAME, COLUMN_NAME  FROM  USER_IND_COLUMNS  WHERE  TABLE_NAME = 'USERS' ORDER BY INDEX_NAME, COLUMN_POSITION
12:36:43 SQL> /

INDEX_NAME		       COLUMN_NAME
------------------------------ ------------------------------
CK_USERS_ID_NEW 	       ID_USER
IDX_BITMAP_USERS_ID_S	       ID_SERVER
IDX_BIT_USERS_DAY_R_ID_S       DAY_RESYNC
IDX_BIT_USERS_DAY_R_ID_S       ID_SERVER
IDX_USERS_GRPID_NEW	       ID_GROUP
IDX_USERS_ID_USER	       SYS_NC00045$
IDX_USERS_ID_U_DAY_RESYNC      ID_USER
IDX_USERS_ID_U_DAY_RESYNC      DAY_RESYNC
IDX_USERS_LOGIN_NEW	       LOGIN
IDX_USERS_PCOMMENT	       PCOMMENT
IDX_USERS_REGDATE_NEW	       REGDATE
IDX_USERS_STATUS_NEW	       STATUS
SYS_C001552414		       ID_SERVER
SYS_C001552414		       LOGIN

14 rows selected.




но старые виртуальные колонки живут:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
12:29:36 SQL> select col#,name,TYPE#,DEFAULT$ ,property from col$ where OBJ#=1122418 and col# = 0;

      COL# NAME 			       TYPE# DEFAULT$										PROPERTY
---------- ------------------------------ ---------- -------------------------------------------------------------------------------- ----------
	 0 SYS_NC00046$ 			   2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			  327976
	 0 SYS_NC00045$ 			   2 TO_NUMBER("ID_USER")								  327976
	 0 SYS_NC00047$ 			   2 TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))			  327976

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

это строчку в col$ менять?

DEFAULT$ с
Код: plsql
1.
TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))


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

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

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

вообще, тырнет несколько мотивов танца с бубном на эту тему дает.
Кто-то силу удара в сам бубен меняет, а кто-то пытается подпрыгивать на ритуальном ходу по кругу.

мне показался может быть сработающим такой вариант камлания:

1) удалить индексы
2) переименовать столбцы - alter table rename column
3) установить их в неиспользуемые - ALTER TABLE...SET UNUSED (columnlist)
4) дропнуть неиспользуемые с явно указанным размером батча для чекпойнта
ALTER TABLE ... DROP UNUSED COLUMNS CHECKPOINT 250;

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

это строчку в col$ менять?

DEFAULT$ с
Код: plsql
1.
TO_NUMBER(SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8))


на что-н другое?


словарь править несколько стремно

но уж если править, то я б для начала убрал TO_NUMBER
на SUBSTR("PCOMMENT",INSTR("PCOMMENT",'PSUB:')+5,8)

.....
stax
...
Рейтинг: 0 / 0
При сборе статистики "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
При сборе статистики "ORA-01722: invalid number"
    #40012864
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА,

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


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