powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora-01795 maximum number of expressions in a list is 1000
14 сообщений из 14, страница 1 из 1
ora-01795 maximum number of expressions in a list is 1000
    #39779863
dimyaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня!
В одном приложении выскакивает такая ошибка ora-01795 при создании нового объекта.
Подозреваю, что есть баг в ядре, но надо найти точный запрос, который это делает.

Пытался поймать его по v$sql, но там выдает слишком много запросов с конструкцией %IN%(%SELECT%
Подскажите какие еще варианты есть поймать оригинальный запрос, который выдает эту ошибку?
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39779873
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimyazмного запросов с конструкцией %IN%(%SELECT%
не дают такую ошибку.
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39779881
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обратиться к разработчикам программы
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39779927
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dimyaz,

например триггер
Код: 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.
45.
create table ERROR_LOG
(
  id       NUMBER,
  username VARCHAR2(30),
  errcode  INTEGER,
  seq      INTEGER,
  tmstmp   TIMESTAMP(6),
  msg      VARCHAR2(4000),
  sql_text CLOB
)
/
create sequence err_seq
/
create or replace trigger trg_error_logging
after servererror
on database
disable
declare
   v_id       number   := err_seq.nextval();
   v_tmstmp   timestamp:= systimestamp;
   n          int;
   sql_text   dbms_standard.ora_name_list_t;
   v_sql_text clob;
begin
   v_sql_text:=null;
   n := ora_sql_txt(sql_text);
   for i in 1..n loop
      v_sql_text := v_sql_text || sql_text(i);
   end loop;

   for i in 1.. ora_server_error_depth
   loop
      if i=1 then
         insert into error_log(id,seq,tmstmp,username,errcode,msg,sql_text)
            values( v_id, i, v_tmstmp, user, ora_server_error(i), ora_server_error_msg(i), v_sql_text);
      else
         insert into error_log(id,seq,tmstmp,username,errcode,msg)
            values( v_id, i, v_tmstmp, user, ora_server_error(i), ora_server_error_msg(i) );
      end if;
   end loop;
   commit;
END;
/
alter trigger trg_error_logging enable
/

...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780061
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimyazВсем доброго дня!
В одном приложении выскакивает такая ошибка ora-01795 при создании нового объекта.
Подозреваю, что есть баг в ядре, но надо найти точный запрос, который это делает.

Пытался поймать его по v$sql, но там выдает слишком много запросов с конструкцией %IN%(%SELECT%
Подскажите какие еще варианты есть поймать оригинальный запрос, который выдает эту ошибку?
попробуйте искать запрос, в котором (кроме select in) ещё тысяча запятых
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780064
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishещё тысяча запятых
Противным занудно-ворчливым голосом: "...не менее девятисот девяноста девяти."
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780086
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish искать запрос, в котором (кроме select in) ещё тысяча запятыхвопрос не что искать, а где искать.
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780087
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-orawish искать запрос, в котором (кроме select in) ещё тысяча запятыхвопрос не что искать, а где искать.
Выставить event -01795 и, потирая лапки, ждать злоумышленника - трейс все расскажет :)
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780183
dimyaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orawishdimyazВсем доброго дня!
В одном приложении выскакивает такая ошибка ora-01795 при создании нового объекта.
Подозреваю, что есть баг в ядре, но надо найти точный запрос, который это делает.

Пытался поймать его по v$sql, но там выдает слишком много запросов с конструкцией %IN%(%SELECT%
Подскажите какие еще варианты есть поймать оригинальный запрос, который выдает эту ошибку?
попробуйте искать запрос, в котором (кроме select in) ещё тысяча запятых

Так тоже делал через regexp_count.
Вылавливал только свои эмуляции.

В общем перерыв пол сервера так и не нашли ошибку.
А потом в поисках другой ошибки, случайно наткнулись на этот запрос в корневых логах. Там это фиаско полностью описано.
Но вот все равно странно что я его не смог зацепить в v$sql.
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780185
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подкину еще одну идею
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780189
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimyazстранно что я его не смог зацепить в v$sql.Странно было бы наоборот.
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780193
dimyaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123ййподкину еще одну идею

Эту версия я первым делом проверил.
Нет, в этом случае все гораздо тривиальнее.

Эта программа, перед созданием сущности, где то динамически собирает все названия в in(name,name...)
В итоге один разработчик вытащил свой тысячный лотерейный билет!
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780221
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimyazНо вот все равно странно что я его не смог зацепить в v$sql.Странно это ожидать в v$sql наличие курсора, для которого свалилась ORA на этапе парса.

Если немного покумекать, можно вспомнить, что v$sql отображает shared SQL area, а смысла шарить курсор который никогда не будет выполнен особого нет.

Как уже заметил Эндрю Анонимный, отловить в трейс можно было бы путем установки event 01795 или даже просто sql trace (event 10046) и еще туча других способов через set events.
...
Рейтинг: 0 / 0
ora-01795 maximum number of expressions in a list is 1000
    #39780229
dimyaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КобанчегdimyazНо вот все равно странно что я его не смог зацепить в v$sql.Странно это ожидать в v$sql наличие курсора, для которого свалилась ORA на этапе парса.

Если немного покумекать, можно вспомнить, что v$sql отображает shared SQL area, а смысла шарить курсор который никогда не будет выполнен особого нет.

Как уже заметил Эндрю Анонимный, отловить в трейс можно было бы путем установки event 01795 или даже просто sql trace (event 10046) и еще туча других способов через set events.

Спасибо, в следующий раз попробую так.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora-01795 maximum number of expressions in a list is 1000
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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