powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / пятничная задачка - убить себя одним SELECT-ом
14 сообщений из 114, страница 5 из 5
пятничная задачка - убить себя одним SELECT-ом
    #37429194
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicКакое приложение? Скорее всего, больше виновато оно.sqlplus / as sysdba
По tns не воспроизводится.

SLES 11, PSU нет
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37483436
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На 11.2.0.2 и 11.2.0.3 падает при использовании метки блока и биндинга
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
var varc refcursor
exec execute immediate '<<bug>>begin open :c for select 123 from dual; end;' using in out :varc

ORA- 03113 : end-of-file on communication channel

---
ORA- 07445 : обнаружено прерывание: core dump [pdz4M13_Add_IL_Instruction()+ 7 ] [SIGSEGV] [ADDR:0xA8] [PC:0x94A2819] [Address not mapped to object] []
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37483837
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37912766
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конструктор xmltype c anydata по null-объекту или коллекции

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
   x xmltype;
   a anydata;
begin
   a := anydata.convertobject(a);
   x := xmltype(a);
end;
/

ORA-07445: exception encountered: core dump [qmxtkCreateFromAdt()+144] [SIGSEGV] [ADDR:0xFFFF] [PC:0x74D937C] [Address not mapped to object] []
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
пятничная задачка - убить себя одним SELECT-ом
    #39280545
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Появилось на 11.2.0.4 (на 11.2.0.3 не воспроизводится)

dual и констант в оригинале не было, это для простоты вопроизведения

Код: 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.
46.
drop table t;

Table dropped.

drop table ff;

Table dropped.

create table t(id, name) as select rownum, 'name' from dual;

Table created.

create table ff as select 1 id, 1 sign from dual;

Table created.

create unique index idx on ff (id, case  when sign is null then 1 else 0 end );

Index created.


select distinct v2.dt
  from    (select v1.*,
                  (select max(1)
                     from t
                    where v1.m = t.id)
                     x
             from (select date '1010-10-10' dt,
                          b_id,
                          (select max(1) from dual) m,
                          ff.*
                     from (select 1 a_id, 1 c_id from dual) a
                          join (select 1 a_id, 777 b_id from dual) b
                             on b.a_id = a.a_id
                          left join ff
                             on ff.id = a.c_id) v1) v2
       join
          t
       on v2.x = t.id
 where b_id = 777;
                  (select max(1)
                         *
ERROR at line 3:
ORA-03113: end-of-file on communication channel
Process ID: 10949
Session ID: 681 Serial number: 41007

При "select *" в главном запросе всё работает ОК.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39280594
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopПоявилось на 11.2.0.4 (на 11.2.0.3 не воспроизводится)


очередной привет от реализации ansi диалекта sql ?
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39280599
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

Но чтоб свалиться ему еще понадобилось парочку (коррелированных) скалярчика и FBI.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39361469
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередное после переезда 11.2.0.3 -> 11.2.0.4
Код: plaintext
create table t as select 'ZZZ' value from dual;
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL> select *
  2    from (select distinct x.*
  3            from xmltable('/A' passing xmltype('<A><B>ZZZ</B></A>') columns b varchar2(255) path 'B') x
  4           where rownum >= 1
  5         ) x1,
  6         t
  7   where t.value = x1.b;

B     VAL
----- ---
ZZZ   ZZZ

SQL> select *
  2    from (select distinct x.*
  3            from xmltable('/A' passing xmltype('<A><B>ZZZ</B></A>') columns b varchar2(255) path 'B') x
  4         --where rownum >= 1
  5         ) x1,
  6         t
  7   where t.value = x1.b;
select *
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
пятничная задачка - убить себя одним SELECT-ом
    #39600559
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в копилочку:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
-- Создаем обычную функцию (можно использовать любую существующую)
create or replace function CalcRate(pId in number) return number is
begin
  return 0;
end;

-- Выполняем запрос
    with   t (dat, rest, lv, perc) as 
             (select to_date('24.07.2017', 'dd.mm.yyyy') as dat, 600 as rest, 1 lv, 0 perc from dual
              union all
              select dat+1, rest+round(perc + rest*0.12/365, 2), lv+1, round(perc + rest*0.12/365, 2) from t 
              where lv<to_date('24.07.2018', 'dd.mm.yyyy')-to_date('24.07.2017', 'dd.mm.yyyy')+1 
              )
              ,t2 as (select 1 tp_id, 1 tp_min, 90 tp_max from dual union all select 2 tp_id, 91 tp_min, 180 tp_max from dual union all select 3 tp_id, 181 tp_min, 365 tp_max from dual )

  ,t3 as (select CalcRate(perc) 
          from t2 p
          left join t on dat between to_date('24.07.2017', 'dd.mm.yyyy')+p.tp_min and to_date('24.07.2017', 'dd.mm.yyyy')+p.tp_max 
          )
select * from t3



получаем ORA-03113, проявляется на 12.2.0.1.0

PS на 11.2.0.4 работает нормально
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39723832
semirax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все-таки забавно, что моя тема десятилетней давности еще жива.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39747876
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Об опасности колы, созданной из источника:
Код: 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.
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
PL/SQL Release 12.1.0.2.0 - Production
CORE    12.1.0.2.0      Production
TNS for Linux: Version 12.1.0.2.0 - Production
NLSRTL Version 12.1.0.2.0 - Production

SQL> select regexp_replace(empty_clob(),'(.{3})', '{\1}',1,0,'n') r1 from dual;

R1
--------------------------------------------------------------------------------


SQL> select regexp_replace(to_clob('12345')||to_clob('67890'),'(.{3})', '{\1}',1,0,'n') r1 from dual;

R1
--------------------------------------------------------------------------------
{123}{456}{789}0

SQL> select regexp_replace(empty_clob()||to_clob('1234567890'),'(.{3})', '{\1}',1,0,'n') r1 from dual;
ERROR:
ORA-00600: internal error code, arguments: [kolaCreateFromSource-2], [], [],
[], [], [], [], [], [], [], [], []
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39748191
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Об опасности колы, созданной -2 из источника:
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39749729
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а у меня - не ловится... а бидна, да
SQL*Plus: Release 11.2.0.1.0 Production on Вт Дек 18 17:57:47 2018

Copyright (c) 1982, 2010, Oracle. All rights reserved.


Присоединен к:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions

SQL> select regexp_replace(empty_clob()||to_clob('1234567890'),'(.{3})', '{\1}',
1,0,'n') r1 from dual;

R1
--------------------------------------------------------------------------------

{123}{456}{789}0
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #39749744
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

Попробовал выполнить на livesql.

Код: plsql
1.
2.
3.
4.
5.
--select regexp_replace(empty_clob(),'(.{3})', '{\1}',1,0,'n') r1 from dual;

--select regexp_replace(to_clob('12345')||to_clob('67890'),'(.{3})', '{\1}',1,0,'n') r1 from dual;

select regexp_replace(empty_clob()||to_clob('1234567890'),'(.{3})', '{\1}',1,0,'n') r1 from dual;


Только последний - отрабатывает примерно два раза из трёх запусков.

Комбинация из трёх подряд даёт стабильное сообщение "internal server error". На очередном запуске livesql стал возвращать мне 500-ю ошибку и пока что мне недоступен.
...
Рейтинг: 0 / 0
14 сообщений из 114, страница 5 из 5
Форумы / Oracle [игнор отключен] [закрыт для гостей] / пятничная задачка - убить себя одним SELECT-ом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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