powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / пятничная задачка - убить себя одним SELECT-ом
114 сообщений из 114, показаны все 5 страниц
пятничная задачка - убить себя одним SELECT-ом
    #35613491
semirax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, есть пользователь, имеющий только привилегию connect и пустую схему.

Как в сеансе этого пользователя одним select-ом из dual, без создания объектов и обращения к чему-либо постороннему закрыть текущую сессию?

Под посторонним подразумеваются program units,synonyms, dictionary views, object types, ограничения дефолтных профилей/ресурсных планов и тд. То есть имеется только табличка dual, и все что из нее можно получить при наличии фантазии.

Версия 10.2.0.1, и скорее всего любые 9i/10g.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613543
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semirax,

Имеешь ввиду любой баг, ведущий к ORA-03113? ;)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Connected to Oracle Database 11g Enterprise Edition Release  11 . 1 . 0 . 6 . 0  
Connected as u1
 
SQL> select  1  from dual
   2   union
   3   select  1  from dual order by dbms_random.value
   4   /
 
select  1  from dual
union
select  1  from dual order by dbms_random.value
 
ORA- 03113 : end-of-file on communication channel
Process ID:  3556 
Session ID:  28  Serial number:  13 
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613564
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или способ от orawish :
Код: plaintext
1.
2.
3.
4.
SQL> select to_char(reverse( 1 )) from dual;
select to_char(reverse( 1 )) from dual
*
ошибка в строке  1 :
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613566
terrymoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
select  1  from dual
union
select  1  from dual order by dbms_random.value
На 10.2.0.1.0 сессия просто намертво подвисла.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613582
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
terrymoon
Код: plaintext
1.
2.
select  1  from dual
union
select  1  from dual order by dbms_random.value
На 10.2.0.1.0 сессия просто намертво подвисла.Значит, полгечало уже?
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613620
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semiraxИтак, есть пользователь, имеющий только привилегию connect и пустую схему.

Как в сеансе этого пользователя одним select-ом из dual, без создания объектов и обращения к чему-либо постороннему закрыть текущую сессию?

Под посторонним подразумеваются program units,synonyms, dictionary views, object types, ограничения дефолтных профилей/ресурсных планов и тд. То есть имеется только табличка dual, и все что из нее можно получить при наличии фантазии.

Версия 10.2.0.1, и скорее всего любые 9i/10g.
Дружище, это не "пятничные задачки". Пятничные задачки были у Elic'а, orawish и RAVEN'а (если кого забыл, сорри) - почитай их темы. А потом сравни со своими армянскими загадками.
:))
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613642
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApexА потом сравни со своими армянскими загадками.
:))Так его :)
Действительно, незачем опускать планку и так часто дескредитировать тему :)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613655
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и не стоит называть их "пятничными задачками", но все равно интересно

PS. А что, название "армянская задачка" тоже ничего :)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35613667
Фотография kinky cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApexПятничные задачки были у Elic'а, orawish и RAVEN'а (если кого забыл, сорри) - почитай их темы. А потом сравни со своими армянскими загадками.
:))
"пятничная задачка"(c) trademark of Elic'а, orawish и RAVEN'а
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614030
semirax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтож, trademark значит trademark.
Пусть будет пятничная армянская загадка.

По поводу предложенных вариантов:да, ora-03113 будет достаточно.
Но при этом
Код: plaintext
1.
2.
3.
select  1  from dual
union
select  1  from dual order by dbms_random.value
не подходит под условия задачи - есть обращение к пакету dbms_random.

Второй же вариант
Код: plaintext
1.
select to_char(reverse( 1 )) from dual;
в 10.2.0.1 отрабатывает нормально, без 03113, так что тоже не то.

Так что, может еще будут варианты?
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614127
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semiraxТак что, может еще будут варианты?Зайди на металинк, там этого добра
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614154
semirax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы у меня был металинк... то задачки были бы на два порядка интереснее:)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614184
semirax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, вот "решение" (если не лень, отпишитесь, у кого на каких версиях работает):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SQL> select firstm( 1 ) over () from dual;
select firstm( 1 ) over () from dual
*
ошибка в строке  1 :
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу

ERROR:
ORA- 03114 : нет связи с ORACLE
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614247
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semiraxЛадно, вот "решение" (если не лень, отпишитесь, у кого на каких версиях работает ):

Ни на одной из 9.2.0.6/8, 10.2.0.3/4, 11.1.0.6.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614293
Фотография orTOPed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сработало на 10.1.0.5.0

На 8-ке не сработало

Код: plaintext
1.
2.
3.
4.
5.
SQL> select firstm( 1 ) over () from dual;
select firstm( 1 ) over () from dual
                      *
ERROR at line  1 :
ORA- 00923 : FROM keyword not found where expected


---
Remember yourself
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614353
semirax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimmsemiraxЛадно, вот "решение" (если не лень, отпишитесь, у кого на каких версиях работает ):

Ни на одной из 9.2.0.6/8, 10.2.0.3/4, 11.1.0.6.

Странно, но возможно зависит от разрядности / оси.
Проверил на 10.2.0.3, 32 бит под Server 2003 - работает.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614923
Nuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
9.2.0.8 W2K3 32bit ORA-03113
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35614935
Фотография Жук в муравейнике
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Законнектбаить пока памяти не закончится
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35616580
Dacota
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
semiraxTimmsemiraxЛадно, вот "решение" (если не лень, отпишитесь, у кого на каких версиях работает ):

Ни на одной из 9.2.0.6/8, 10.2.0.3/4, 11.1.0.6.

Странно, но возможно зависит от разрядности / оси.
Проверил на 10.2.0.3, 32 бит под Server 2003 - работает.

10.2.0.3 XP SP2 32-bit - ORA-01331
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35616605
zloypunk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release  10 . 2 . 0 . 3 . 0  - Prod
PL/SQL Release  10 . 2 . 0 . 3 . 0  - Production
CORE     10 . 2 . 0 . 3 . 0       Production
TNS for  32 -bit Windows: Version  10 . 2 . 0 . 3 . 0  - Production
NLSRTL Version  10 . 2 . 0 . 3 . 0  - Production

SQL> select * from dual where not lnnvl( 1 = 1 );
select * from dual where not lnnvl( 1 = 1 )
*
ошибка в строке  1 :
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу


SQL>
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35616622
semirax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloypunk,
:)
и это тоже работает ...
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35617033
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orTOPedСработало на 10.1.0.5.0

На 8-ке не сработало

Код: plaintext
1.
2.
3.
4.
5.
SQL> select firstm( 1 ) over () from dual;
select firstm( 1 ) over () from dual
                      *
ERROR at line  1 :
ORA- 00923 : FROM keyword not found where expected


---
Remember yourself Ты забыл рассказать, какой цифры 8-ка
А то они разные бывают
Ну и про execute immediate не забудь
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35617225
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
Код: plaintext
1.
2.
3.
4.
5.
SQL> select firstm( 1 ) over () from dual;
select firstm( 1 ) over () from dual
                      *
ERROR at line  1 :
ORA- 00923 : FROM keyword not found where expected
---
Ну и про execute immediate не забудь
А при чем здесь execute immediate?
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35617227
Фотография orTOPed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Version 8.1.7.4.0
Про execute immediate тоже не понял
---
Remember yourself
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35617546
Shurikas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Connected to Oracle9i Enterprise Edition Release  9 . 2 . 0 . 6 . 0  
Connected as lc
 
SQL> select firstm( 1 ) over () from dual;
 
select firstm( 1 ) over () from dual
 
ORA- 03113 : end-of-file on communication channel
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35618265
anotherone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Connected to:
Oracle Database 10g Enterprise Edition Release  10 . 2 . 0 . 4 . 0  - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select firstm( 1 ) over () from dual;
select firstm( 1 ) over () from dual
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel

:-) работает
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35619263
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApexВячеслав Любомудров
Код: plaintext
1.
2.
3.
4.
5.
SQL> select firstm( 1 ) over () from dual;
select firstm( 1 ) over () from dual
                      *
ERROR at line  1 :
ORA- 00923 : FROM keyword not found where expected
---
Ну и про execute immediate не забудь
А при чем здесь execute immediate?Упс... Попутал
Там в 8-ке с аналитикой в PL/SQL были проблемы, приходилось через execute immediate пускать
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35923844
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На более ранних десоточных версиях вообще немеряно багов такого рода связанных с моделью.
А на 10.2.0.4.0 is present с отрицанием работать не хочет.
Код: plaintext
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 * from v$version where rownum =  1 ;
 
BANNER
----------------------------------------------------------------
Oracle Database 10g Release  10 . 2 . 0 . 4 . 0  - 64bit Production
SQL> with tmp as
   2   (select  1  id, 'x' name,  2000  year from dual)
   3   select *
   4   from tmp
   5   model
   6     DIMENSION BY(name, year)
   7     MEASURES (id,  0  result)
   8     RULES (result[name, 2000 ] = case when not id[cv(name), 2001 ] is present then  1  else  0  end);
 
with tmp as
(select  1  id, 'x' name,  2000  year from dual)
select *
from tmp
model
  DIMENSION BY(name, year)
  MEASURES (id,  0  result)
  RULES (result[name, 2000 ] = case when not id[cv(name), 2001 ] is present then  1  else  0  end)
 
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35923910
SQL Bigot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй
Код: plaintext
1.
2.
3.
4.
5.
select 'insert 1,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual union all 
select 'insert 2,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual union all 
select 'insert 3,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual union all 
...
select 'insert 2000,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual
В какой-то з первых десяток отваливалось со свистом.

а также такую конструкцию, единичек добавляй понемногу

Код: plaintext
select count( 1 ) from dual group by cube( 1 , 1 , 1 , 1 ,........, 1 , 1 )
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35923914
SQL Bigot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot SQL Bigot]попробуй
Код: plaintext
1.
2.
3.
4.
5.
select 'insert 1,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual union all 
select 'insert 2,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual union all 
select 'insert 3,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual union all 
...
select 'insert 2000,'||rownum||', ''blabla'' , 12345678 into holytable;' from dual

Кста, с этим осторожней, АФАИР там даже инстанс падал с чистыми логами.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #35924444
Фотография orTOPed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал на 10.1.0.5.0
1 пример не прошел, 2 отвалился успешно :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
...
'INSERT1,'||ROWNUM||',''BLABLA'',12345678INTOHOLYTABLE;'
--------------------------------------------------------------------------------
insert   2179 , 1 , 'blabla' ,  12345678  into holytable;
insert   2180 , 1 , 'blabla' ,  12345678  into holytable;

 2180  rows selected.

SQL>  select * from v$version where rownum =  1 ;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release  10 . 1 . 0 . 5 . 0  - Prod

SQL> select count( 1 ) from dual group by cube( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 );  
select count( 1 ) from dual group by cube( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 )
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel

Этот пример прошел :)
SQL> 


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SQL*Plus: Release  10 . 1 . 0 . 5 . 0  - Production on Thu Apr  9   19 : 13 : 48   2009 

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


Connected to:
Oracle Database 10g Enterprise Edition Release  10 . 1 . 0 . 5 . 0  - Production
With the Partitioning, OLAP and Data Mining options

SQL> with tmp as
   2   (select  1  id, 'x' name,  2000  year from dual)
   3   select *
   4   from tmp
   5   model
   6     DIMENSION BY(name, year)
   7     MEASURES (id,  0  result)
   8     RULES (result[name, 2000 ] = case when not id[cv(name), 2001 ] is present then  1  else  0  end)
   9   ;
with tmp as
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel


SQL> 

---
Remember yourself
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
пятничная задачка - убить себя одним SELECT-ом
    #36732175
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select * from v$version where rownum =  1 ;
 
BANNER
----------------------------------------------------------------
Oracle Database 10g Release  10 . 2 . 0 . 4 . 0  - 64bit Production
SQL> create table tmp as SELECT xmlagg(xmlelement("X",  0 )) s FROM dual t;
 
create table tmp as SELECT xmlagg(xmlelement("X",  0 )) s FROM dual t
 
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36732496
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop
Код: plaintext
SQL> create table tmp as SELECT xmlagg(xmlelement("X",  0 )) s FROM dual t;


А без выделенного, простой запрос отрабатывает? (Проверить не могу, под рукой только 11g и 9i)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36732522
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerdbms_photoshop
Код: plaintext
SQL> create table tmp as SELECT xmlagg(xmlelement("X",  0 )) s FROM dual t;


А без выделенного, простой запрос отрабатывает? (Проверить не могу, под рукой только 11g и 9i)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> SELECT sys_xmlagg(xmlelement("X", 0 )) id FROM dual;
 
ID
--------------------------------------------------------------------------------
<?xml version="1.0"?>
<ROWSET>
<X> 0 </X></ROWSET>
 
SQL> create table tmpA as SELECT sys_xmlagg(xmlelement("X", 0 )) id FROM dual;
 
Table created
SQL> SELECT xmlagg(xmlelement("X", 0 )) id FROM dual;
 
ID
--------------------------------------------------------------------------------
<X> 0 </X>
SQL> create table tmpB as SELECT xmlagg(xmlelement("X", 0 )) id FROM dual;
 
create table tmpB as SELECT xmlagg(xmlelement("X", 0 )) id FROM dual
 
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36732583
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в 10.2.0.1 полет нормальный :))
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36732616
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

тогда это не "один SELECT". ;)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36732618
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55А в 10.2.0.1 полет нормальный :))
В 9.2.0.6.0 ошибку выдает вразумительную:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> select * from v$version where rownum =  1 ;
 
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release  9 . 2 . 0 . 6 . 0  - Production
SQL> create table tmpA as SELECT sys_xmlagg(xmlelement("X", 0 )) id FROM dual;
 
Table created
SQL> create table tmpB as SELECT xmlagg(xmlelement("X", 0 )) id FROM dual;
 
create table tmpB as SELECT xmlagg(xmlelement("X", 0 )) id FROM dual
 
ORA- 19010 : Cannot insert XML fragments
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36732621
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,
Да, но неохота было еще один топик создавать.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36733464
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11g
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Oracle Database 11g Release  11 . 2 . 0 . 1 . 0  - 64bit Production
PL/SQL Release  11 . 2 . 0 . 1 . 0  - Production
CORE     11 . 2 . 0 . 1 . 0       Production
TNS for  64 -bit Windows: Version  11 . 2 . 0 . 1 . 0  - Production
NLSRTL Version  11 . 2 . 0 . 1 . 0  - Production

SQL> select firstm( 1 ) over () from dual
   2   ;
select firstm( 1 ) over () from dual
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel

10>
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Oracle Database 10g Express Edition Release  10 . 2 . 0 . 1 . 0  - Product
PL/SQL Release  10 . 2 . 0 . 1 . 0  - Production
CORE     10 . 2 . 0 . 1 . 0       Production
TNS for  32 -bit Windows: Version  10 . 2 . 0 . 1 . 0  - Production
NLSRTL Version  10 . 2 . 0 . 1 . 0  - Production

SQL> select firstm( 1 ) over () from dual;
select firstm( 1 ) over () from dual
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36751479
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> select * from v$version;

BANNER
---------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release  11 . 1 . 0 . 7 . 0  - 64bit Production
PL/SQL Release  11 . 1 . 0 . 7 . 0  - Production
CORE     11 . 1 . 0 . 7 . 0       Production
TNS for Linux: Version  11 . 1 . 0 . 7 . 0  - Production
NLSRTL Version  11 . 1 . 0 . 7 . 0  - Production

SQL> select prior фигня from dual connect by level<= 1 ;
select prior фигня from dual connect by level<= 1 
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel
Process ID:  29322 
Session ID:  320  Serial number:  51871 


ERROR:
ORA- 03114 : not connected to ORACLE
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36758565
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Код: plaintext
1.
2.
3.
4.
5.
6.
Oracle Database 11g Enterprise Edition Release  11 . 1 . 0 . 7 . 0  - 64bit Production
...
SQL> select prior фигня from dual connect by level<= 1 ;
...
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel

-2- объявляется победителем конкурса по копанию в металинке по убиению себя сессии одним селектом
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36759035
makitka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, все недокументированные анал. ф-ции с постфиксом -m тупо убивают коннект
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36843718
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередной прикол с left join:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select * from v$version where rownum =  1 ;
 
BANNER
----------------------------------------------------------------
Oracle Database 10g Release  10 . 2 . 0 . 4 . 0  - 64bit Production
SQL> SELECT * FROM dual d1 LEFT JOIN dual d2 ON nvl(d1.dummy, '*') = nvl(d2.dummy, '*') AND  1  =  1 ;
 
SELECT * FROM dual d1 LEFT JOIN dual d2 ON nvl(d1.dummy, '*') = nvl(d2.dummy, '*') AND  1  =  1 
 
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
Интересно в 11.2 повторяется? (нет под рукой, не могу проверить).
makitkaкстати, все недокументированные анал. ф-ции с постфиксом -m тупо убивают коннектПример в студию.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36843750
makitka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop
makitkaкстати, все недокументированные анал. ф-ции с постфиксом -m тупо убивают коннектПример в студию.
примеры выше, если охота - перебери все с psoug.org
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36843780
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makitkadbms_photoshop
makitkaкстати, все недокументированные анал. ф-ции с постфиксом -m тупо убивают коннектПример в студию.
примеры выше, если охота - перебери все с psoug.org
Ты про это Undocumented Oracle ?
Забавный списочек. Странно че они туда reverse не включили?
Но получение 03113 при недокументированных это уже не так интересно, т.к. при их использовании Oracle изначально ничего не гарантирует. :)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36843793
makitka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop
Но получение 03113 при недокументированных это уже не так интересно, т.к. при их использовании Oracle изначально ничего не гарантирует. :)
ну да, и тем не менее это ответ самого автора темы на поставленный вопрос, на что я всего лишь заметил что все анал. с постфиксом -m имеют такое свойство
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36844209
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopИнтересно в 11.2 повторяется?
не-а...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> select * from v$version;
 
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 1 . 0  - Production
PL/SQL Release  11 . 2 . 0 . 1 . 0  - Production
CORE	 11 . 2 . 0 . 1 . 0 	Production
TNS for  32 -bit Windows: Version  11 . 2 . 0 . 1 . 0  - Production
NLSRTL Version  11 . 2 . 0 . 1 . 0  - Production
 
SQL> SELECT * FROM dual d1 LEFT JOIN dual d2 ON nvl(d1.dummy, '*') = nvl(d2.dummy, '*') AND  1  =  1 ;
 
DUMMY DUMMY
----- -----
X     X
 
SQL> 
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36845032
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d.nemolchevdbms_photoshopИнтересно в 11.2 повторяется?
не-а...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SQL> select * from v$version;
..
 
DUMMY DUMMY
----- -----
X     X
 
SQL> 

да и в 11.1(.0.7) - тоже не-а..
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36845061
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopОчередной прикол с left join:
Код: plaintext
..ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
..
ну и (вполне ожидаемо ) где left падает, там и full падает
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36845107
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishdbms_photoshopОчередной прикол с left join:
Код: plaintext
..ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
..
ну и (вполне ожидаемо ) где left падает, там и full падаетТаки да...
и даже --+ opt_param('_optimizer_native_full_outer_join', 'force') ему не помогло. :)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36910609
lein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select 
(select code from (select dummy code, dummy pcode from dual) start with CODE=a.kod connect by prior pcode = code)
FROM
(
select dummy kod from dual
, 
(select  1  from dual where dummy='1')
) a
,(select distinct  1  from dual)
ошибка в строке 2:
ORA-03113: принят сигнал конца файла по коммуникационному каналу7
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36911181
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RA\/EN-2-
Код: plaintext
1.
2.
3.
4.
5.
6.
Oracle Database 11g Enterprise Edition Release  11 . 1 . 0 . 7 . 0  - 64bit Production
...
SQL> select prior фигня from dual connect by level<= 1 ;
...
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel

-2- объявляется победителем конкурса по копанию в металинке по убиению себя сессии одним селектом
В 11.2 починили
Код: plaintext
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.
SQL> connect test@test11. 1 
Enter password:
Connected.
SQL> select * from v$version;
BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release  11 . 1 . 0 . 7 . 0  - Production
PL/SQL Release  11 . 1 . 0 . 7 . 0  - Production
CORE     11 . 1 . 0 . 7 . 0       Production
TNS for  32 -bit Windows: Version  11 . 1 . 0 . 7 . 0  - Production
NLSRTL Version  11 . 1 . 0 . 7 . 0  - Production

SQL> select prior sysdate from dual connect by level<= 1 ;
select prior sysdate from dual connect by level<= 1 
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel
Process ID:  2848 
Session ID:  136  Serial number:  10044 

SQL> connect test@test11. 2 
Enter password:
Connected.
SQL> select * from v$version;
BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 2 . 0  - 64bit Production
PL/SQL Release  11 . 2 . 0 . 2 . 0  - Production
CORE     11 . 2 . 0 . 2 . 0       Production
TNS for Linux: Version  11 . 2 . 0 . 2 . 0  - Production
NLSRTL Version  11 . 2 . 0 . 2 . 0  - Production

SQL> select prior sysdate from dual connect by level<= 1 ;

PRIORSYS
--------

...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36912386
lein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,
А в 10.2 это тоже работало, а мой запрос из предыдущего сообщения нет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Oracle Database 10g Enterprise Edition Release  10 . 2 . 0 . 1 . 0  - Production
With the Partitioning, OLAP and Data Mining options

SQL> select prior sysdate from dual connect by level<= 1 ;

PRIORSYS
--------


SQL> 
SQL> select 
   2   (select code from (select dummy code, dummy pcode from dual) start with CODE=a.kod 
connect by prior pcode = code)
   3   FROM
   4   (
   5   select dummy kod from dual
   6   , 
   7   (select  1  from dual where dummy='1')
   8   ) a
   9   ,(select distinct  1  from dual)
  10   ;
select
*
ошибка в строке  1 :
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #36982369
_Nikotin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После этого к ораклу(11.1.0.7) через какое-то время после запуска уже невозможно приконнектиться, все сессии зависают
Код: plaintext
1.
2.
3.
4.
5.
6.
create or replace function to_number (i varchar2) return number is
begin
  return to_number(i);
end;
/

select имя_схемы.to_number('0') from dual;
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37007005
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select * from v$version where rownum =  1 ;
 
BANNER
----------------------------------------------------------------
Oracle Database 10g Release  10 . 2 . 0 . 5 . 0  - 64bit Production
SQL> select cast(collect( 1 ) over(order by null) as sys.odcinumberlist) from dual;
 
select cast(collect( 1 ) over(order by null) as sys.odcinumberlist) from dual
 
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37015638
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 2 . 0  - 64bit Production
PL/SQL Release  11 . 2 . 0 . 2 . 0  - Production
CORE	 11 . 2 . 0 . 2 . 0 	Production
TNS for Linux: Version  11 . 2 . 0 . 2 . 0  - Production
NLSRTL Version  11 . 2 . 0 . 2 . 0  - Production

select *
from
    (select xmlelement(evalname 'range', xmlattributes('date' as "type"), 
                    xmlelement(evalname 'from', to_char(sysdate, 'dd.mm.yyyy hh24:mi:ss')),
                    xmlelement(evalname 'to',   to_char(sysdate, 'dd.mm.yyyy hh24:mi:ss'))
                  ) xml
     from dual
    ) 
where xmlexists('/range' passing xml);
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37015685
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select *
   2   from
   3       (select xmlelement("range", xmlattributes('date' as "type"),
   4                       xmlelement("from", to_char(sysdate, 'dd.mm.yyyy hh24:mi:ss')),
   5                       xmlelement("to",   to_char(sysdate, 'dd.mm.yyyy hh24:mi:ss'))
   6                     ) xml
   7        from dual
   8       )
   9   where xmlexists('/ran' passing xml);
     from dual
          *
ошибка в строке  7 :
ORA- 19276 : XPST0005 - шаг XPath задает недопустимое имя элемента/атрибута:
(ran)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37015918
bruce lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release  9 . 2 . 0 . 7 . 0  - Production
PL/SQL Release  9 . 2 . 0 . 7 . 0  - Production
CORE     9 . 2 . 0 . 7 . 0        Production
TNS for  32 -bit Windows: Version  9 . 2 . 0 . 7 . 0  - Production
NLSRTL Version  9 . 2 . 0 . 7 . 0  - Production

SQL> select /*+ ignore_on_clause */ * from dual;
select /*+ ignore_on_clause */ * from dual
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37028502
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде ЗДЕСь еще не было
Код: plaintext
1.
2.
3.
SELECT *
  FROM dual
 WHERE  1 = 2 
 connect BY ROWNUM >= 1 


сессия не убивается, но ошибка серьёзная:
ORA-04030: OUT OF process MEMORY WHEN trying TO ALLOCATE 28 bytes (kxs-HEAP-w,CURSOR WORK HEAP)

повторяется на 9.2.0.6 и на XE
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37028503
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
другие сессии тоже в попе :)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37028504
_Nikotin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

это у тебя ядро одно наверное?
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37028506
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Nikotin,

ХЕ - вроде только на одном

кстати, насчет 9.2.0.6 погорячился - лично не проверял, поверил на слово приятелю, но тот про версию ничего не говорил
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37028511
_Nikotin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Аналогично бесконечная рекурсия уходит в себя.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37028942
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на 9.2.0.6 ошибка повторяется:

ORA-04030: out of process memory when trying to allocate 28 bytes (cursor work he,cursor work heap)

но остальные процессы работают
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37040350
Фотография orTOPed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bruce lee
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release  9 . 2 . 0 . 7 . 0  - Production
PL/SQL Release  9 . 2 . 0 . 7 . 0  - Production
CORE     9 . 2 . 0 . 7 . 0        Production
TNS for  32 -bit Windows: Version  9 . 2 . 0 . 7 . 0  - Production
NLSRTL Version  9 . 2 . 0 . 7 . 0  - Production

SQL> select /*+ ignore_on_clause */ * from dual;
select /*+ ignore_on_clause */ * from dual
*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel

В 9.2.0.8 в добавок в алертлог получаем ошибку
Код: plaintext
1.
2.
3.
ksedmp: internal or fatal error
ORA- 07445 : exception encountered: core dump [$cold_upsFlipFro()+ 128 ] [SIGSEGV] [Invalid permissions for mapped object] [0x000000020] [] []
Current SQL statement for this session:
select /*+ ignore_on_clause */ * from dual
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37040364
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не селект правда, но до этого не встречал у себя такого. Был пользователь, которого удалили, при попытке коннекта:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
[oracle@srv]$ /opt/oracle/product/ 10 . 2 /db/bin/sqlplus user

SQL*Plus: Release  10 . 2 . 0 . 5 . 0  - Production on Wed Dec  29   11 : 08 : 34   2010 

Copyright (c)  1982 ,  2010 , Oracle.  All Rights Reserved.

Enter password: 
ERROR:
ORA- 03113 : end-of-file on communication channel

[oracle@srv]$ tail /opt/oracle/admin/db/bdump/alert_db.log 
Errors in file /opt/oracle/admin/db/udump/db_ora_3215.trc:
ORA- 07445 : exception encountered: core dump [gslcoish_SaslHostConnectedTo()+ 54 ] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37051953
bdsm_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хе-хе.. та самая ф-ция, которая используется для подсчета clustering factor
думал ее приспособить на анал, но не тут-то было :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> select banner from v$version;

BANNER                                                                          
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 1 . 0  - Production          
PL/SQL Release  11 . 2 . 0 . 1 . 0  - Production                                          
CORE	 11 . 2 . 0 . 1 . 0 	Production                                                      
TNS for  32 -bit Windows: Version  11 . 2 . 0 . 1 . 0  - Production                         
NLSRTL Version  11 . 2 . 0 . 1 . 0  - Production                                          

SQL> SELECT SYS_OP_COUNTCHG(dummy,  1 ) OVER(ORDER BY ROWNUM) FROM dual;
SELECT SYS_OP_COUNTCHG(dummy,  1 ) OVER(ORDER BY ROWNUM) FROM dual
*
ошибка в строке  1 :
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу 
Идентификатор процесса:  10368  
Идентификатор сеанса:  10  Порядковый номер:  15421  
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37059531
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select * from v$version where rownum =  1 ;
 
BANNER
----------------------------------------------------------------
Oracle Database 10g Release  10 . 2 . 0 . 5 . 0  - 64bit Production
SQL> select to_char(column_value) value from xmltable('10 to 12,15');
 
select to_char(column_value) value from xmltable('10 to 12,15')
 
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37059548
Гость 888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хеллоу,

У меня встречный вопрос:
Выполняю в sql*plus:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Connected to:
Oracle8i Enterprise Edition Release  8 . 1 . 7 . 0 . 0  - Production
With the Partitioning option
JServer Release  8 . 1 . 7 . 0 . 0  - Production

SQL> select * from dual@link_to_test
   2   /

D
-
X

В SQL Navigator (v.4.4.0.500):
Код: plaintext
1.
2.
3.
4.
Processing ...
select * from dual@LINK_TO_TEST
select * from dual@LINK_TO_TEST
 *
ORA- 03113 : end-of-file on communication channel

В чем может быть дело?
Спасибо.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37059576
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbms_photoshop, а почему не extractvalue(column_value,'/text()')?

http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28369/xdb04cre.htm
If a specific data type is desired, then you can apply a conversion function such as to_char or to_date to the result of extractValue or extract.getStringVal() . This can help maintain consistency between different queries, regardless of whether the queries can be rewritten.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37059637
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderdbms_photoshop, а почему не extractvalue(column_value,'/text()')?Потому же почему и не
Код: plaintext
select cast(column_value as varchar2( 4000 )) value from xmltable('10 to 12,15');
Чтоб 03113 словить.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37059665
bdsm_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopxtenderdbms_photoshop, а почему не extractvalue(column_value,'/text()')?Потому же почему и не
Код: plaintext
select cast(column_value as varchar2( 4000 )) value from xmltable('10 to 12,15');
Чтоб 03113 словить.
10-ки под рукой нет, но column_value || '' вроде тоже должно работать
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37080795
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbms_photoshop
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select * from v$version where rownum =  1 ;
 
BANNER
----------------------------------------------------------------
Oracle Database 10g Release  10 . 2 . 0 . 5 . 0  - 64bit Production
SQL> select cast(collect( 1 ) over(order by null) as sys.odcinumberlist) from dual;
 
select cast(collect( 1 ) over(order by null) as sys.odcinumberlist) from dual
 
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу

Продолжение collect:
11.2.0.1.0
Код: plaintext
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.
-- 1. После такого,кажется, что с датами вообще не работает, но смотрим п.2
select cast(
          collect(sysdate) 
        as sys.odcidatelist) dt_table
from dual 
connect by level< 3 ;
-- 1.1. c over то же самое как с partition, так и  с order by
select cast(
          collect(sysdate) over(partition by level)
        as sys.odcidatelist) dt_table
from dual 
connect by level< 3 ;
-- 2. а вот тут забавно - убираем order by или весь over и все работает!
with calls as (
    select to_date('01.01.2011 10:00:00','dd.mm.yyyy hh24:mi:ss') dt,  20  duration,  30  cost,  1  a,  2  b from dual union all
    select to_date('01.01.2011 11:00:00','dd.mm.yyyy hh24:mi:ss'),  2 ,  4 ,  1 ,  2  from dual union all
    select to_date('01.01.2011 11:00:02','dd.mm.yyyy hh24:mi:ss'),  8 ,  8 ,  1 ,  2  from dual union all
    select to_date('01.01.2011 11:00:10','dd.mm.yyyy hh24:mi:ss'),  60 ,  0 ,  1 ,  2  from dual union all
    select to_date('01.01.2011 12:00:35','dd.mm.yyyy hh24:mi:ss'),  5 ,  0 ,  1 ,  2  from dual union all
    select to_date('01.01.2011 12:00:40','dd.mm.yyyy hh24:mi:ss'),  10 ,  10 ,  1 ,  2  from dual union all
    select to_date('01.01.2011 02:40:05','dd.mm.yyyy hh24:mi:ss'),  5 ,  0 ,  3 ,  2  from dual union all
    select to_date('01.01.2011 02:40:10','dd.mm.yyyy hh24:mi:ss'),  40 ,  23 ,  3 ,  2  from dual union all
    select to_date('01.01.2011 22:34:20','dd.mm.yyyy hh24:mi:ss'),  20 ,  6 ,  3 ,  2  from dual union all
    select to_date('01.01.2011 22:34:40','dd.mm.yyyy hh24:mi:ss'),  10 ,  0 ,  3 ,  2  from dual union all
    select to_date('01.01.2011 11:00:00','dd.mm.yyyy hh24:mi:ss'),  60 ,  0 ,  2 ,  1  from dual union all
    select to_date('01.01.2011 12:00:00','dd.mm.yyyy hh24:mi:ss'),  30 ,  10 ,  2 ,  1  from dual 
)
select 
    c.*,
    cast(collect(c.dt) over(partition by a,b order by dt) as sys.odcidatelist) dt_table
from calls c

В 10.2.0.1.0 x64 небольшое отличие только во втором случае - работает только если нет over вообще
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37080812
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В продолжение проблемки с collect решил попробовать свой агрегат для аналитики:
Код: plaintext
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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
create or replace type date_table_agg_type as object
(
   data  date_table,

   static function
        ODCIAggregateInitialize(sctx IN OUT date_table_agg_type )
        return number,

   member function
        ODCIAggregateIterate(self IN OUT date_table_agg_type ,
                             value IN date )
        return number,

   member function
        ODCIAggregateTerminate(self IN date_table_agg_type,
                               returnValue OUT  date_table,
                               flags IN number)
        return number,

   member function
        ODCIAggregateMerge(self IN OUT date_table_agg_type,
                           ctx2 IN date_table_agg_type)
        return number
)
/
create or replace type body date_table_agg_type
is

static function ODCIAggregateInitialize(sctx IN OUT date_table_agg_type)
return number
is
begin
    sctx := date_table_agg_type( date_table() );
    return ODCIConst.Success;
end;

member function ODCIAggregateIterate(self IN OUT date_table_agg_type,
                                     value IN date )
return number
is
begin
    self.data:=self.data multiset union all date_table(value);
    return ODCIConst.Success;
end;

member function ODCIAggregateTerminate(self IN date_table_agg_type,
                                       returnValue OUT date_table,
                                       flags IN number)
return number
is
begin
    returnValue := self.data;
    return ODCIConst.Success;
end;

member function ODCIAggregateMerge(self IN OUT date_table_agg_type,
                                   ctx2 IN date_table_agg_type)
return number
is
begin
    self.data:=self.data multiset union all ctx2.data;
    return ODCIConst.Success;
end;

end;
Функция:
Код: plaintext
1.
2.
3.
4.
CREATE OR REPLACE FUNCTION date_table_agg(input date)
RETURN date_table
PARALLEL_ENABLE 
AGGREGATE USING date_table_agg_type;
Но проблема осталась... Совершенно не понимаю в чем подвох...
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37083168
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderПродолжение collectНа самом деле на 11.2.0.1.0 отрабатывает
- групповой collect
- partition by
Только иногда надо подсказать тип данных не только после collect но и перед .
Код: plaintext
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 cast(collect(cast(sysdate as date)) as sys.odcidatelist) dt_table
   2     from dual
   3   connect by level <  3 ;
 
DT_TABLE
--------
<Object>
SQL> select cast(collect(cast(sysdate as date)) over(partition by level) as sys.odcidatelist) dt_table
   2     from dual
   3   connect by level <  3 ;
 
DT_TABLE
--------
<Object>
<Object>
SQL> select cast(collect(cast(sysdate as date)) over(order by level) as sys.odcidatelist) dt_table
   2     from dual
   3   connect by level <  3 ;
 
select cast(collect(cast(sysdate as date)) over(order by level) as sys.odcidatelist) dt_table
  from dual
connect by level <  3 
 
ORA- 03113 : end-of-file on communication channel
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37083178
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderВ продолжение проблемки с collect решил попробовать свой агрегат для аналитики:
...
Но проблема осталась... Совершенно не понимаю в чем подвох...По крайней мере точно ясно, UDAG, возвращающий коллекцию явно с багами.
Вот еще:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select cast(collect(cast(num as number)) over (order by num) as sys.odcinumberlist)
   2     from (select  1  num from dual connect by level <=  2 );
 
CAST(COLLECT(CAST(NUMASNUMBER)
------------------------------
<Object>
<Object>
SQL> select cast(collect(cast(num as number)) over (order by num) as sys.odcinumberlist)
   2     from (select level num from dual connect by level <=  2 );
 
select cast(collect(cast(num as number)) over (order by num) as sys.odcinumberlist)
  from (select level num from dual connect by level <=  2 )
 
ORA- 03113 : end-of-file on communication channel
Я сам на это напоролся вчера когда решал одну задачку (но думал что где-то в документации не досмотрел): Query challenge .
Там два Oracle ACE не знали как к решению нормально приплести UDAG. :)
А так еще было бы забавное решение с collect и без join, если б работал over (order by ...), но не судьба.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084532
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть ли оракловая команда, чтобы убить свою сессию?

т.к. стандартный ALTER SYSTEM KILL SESSION к своей сесии

выдаёт стандартное же

ORA-00027: невозможно удалить текущий сеанс


ЗЫ: нужно для отладки пользователю, у которого админ прав нет
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084590
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxА есть ли оракловая команда, чтобы убить свою сессию?

т.к. стандартный ALTER SYSTEM KILL SESSION к своей сесии

выдаёт стандартное же

ORA-00027: невозможно удалить текущий сеанс


ЗЫ: нужно для отладки пользователю, у которого админ прав нет
stff ~ харакири
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084592
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxА есть ли оракловая команда, чтобы убить свою сессию?
Код: plaintext
1.
SQL> exit
Disconnected from Oracle Database
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084614
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

надо именно убить :)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084620
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot dbms_photoshop]xtender..;

select cast(collect(cast(sysdate as date)) over(order by level) as sys.odcidatelist) dt_table
from dual
connect by level < 3

ORA-03113: end-of-file on communication channel[/src]

кстати, мой клиент это выдержал.
т.е., исполнять то не стал, но и сессию не грохнул - а сказал, что:
On Fetch: ORA-00932: несовместимые типы данных: ожидается CHAR, получено ARRAY
из чего я решил попробовать в sqlplus то же для level < 1 ну и
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Присоединен к:
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 1 . 0  - 64bit Production
With the Partitioning, OLAP and Real Application Testing options

SQL> select cast(collect(cast(sysdate as date)) over(order by level) as sys.odcidatelist) dt_table
   2     from dual
   3   connect by level <  1 ;

DT_TABLE
--------------------------------------------------------------------------------
ODCIDATELIST('28.01.11')
значит, наверное, таки он-фетч
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084651
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

ну и level < 2 тоже работает и аналогично level < 1 () возвращает одну строку
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084657
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxнадо именно убить :)В чем разница?
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084671
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-andreymxнадо именно убить :)В чем разница?нет ошибок 00028 01012
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084713
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx-2-пропущено...
В чем разница?нет ошибок 00028 01012после disconnect последующие обращения к сеансовым функциям приведут к 01012.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37084872
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishну и level < 2 тоже работает и аналогично level < 1 () возвращает одну строкуИ что в этом удивительного?
Все по букварю.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select * from dual connect by level <  1 ;
 
DUMMY
-----
X
SQL> select * from dual connect by level <  2 ;
 
DUMMY
-----
X
collect over (order by ...) здесь ни при чем.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37085120
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое решение подойдет?
Код: plaintext
1.
2.
3.
4.
5.
WITH t AS(
            SELECT CURRENT_TIMESTAMP                    ts FROM dual
  UNION ALL SELECT CURRENT_TIMESTAMP AT TIME ZONE 'UTC'    FROM dual
)
          SELECT COUNT(DISTINCT ts) cnt FROM t
UNION ALL SELECT COUNT(          *)     FROM (SELECT DISTINCT ts FROM t);
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 1245
Session ID: 196 Serial number: 54950
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37085130
Фотография Corner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SQL> host shutdown -f  1 
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37085189
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshoporawishну и level < 2 тоже работает и аналогично level < 1 () возвращает одну строкуИ что в этом удивительного?
Все по букварю.
..
collect over (order by ...) здесь ни при чем.
да, точно.

(пойду напьюсь :)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37085273
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-andreymxА есть ли оракловая команда, чтобы убить свою сессию?
Код: plaintext
1.
SQL> exit
Disconnected from Oracle Database
exit - вроде ж команда плюса?
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37085286
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx-2-
Код: plaintext
1.
SQL> exit
Disconnected from Oracle Database
exit - вроде ж команда плюса?У вас пользователи работают с базой не через стандартный инструмент, а через какой-то самописный?!!
Тогда, например, так:
Код: plaintext
1.
2.
java.sql.Connection con;
...
con.close();
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37085314
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

мне надо выйти из сессии нештатным способом, не используя OracleSession1.Connected := false
http://www.sql.ru/forum/actualthread.aspx?tid=824399
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37161461
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Себя убить - это как-то мелко.
Одним SELECT-ом можно убить весь экземпляр, причем имея только привелегию create session.
Код: plaintext
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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
C:\Windows\system32>sqlplus -s / as sysdba
select * from v$version where rownum =  1 ;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release  10 . 2 . 0 . 4 . 0  - 64bi

create user instance_killer identified by instance_killer;

User created.

grant create session to instance_killer;

Grant succeeded.

exit

C:\Windows\system32>sqlplus -s instance_killer/instance_killer
DECLARE
    n         NUMBER :=  200000 ;
    c         VARCHAR2( 4000 );
    body_list dbms_sql.varchar2a;
    l_cursor  INTEGER DEFAULT dbms_sql.open_cursor;
    res       INTEGER;
BEGIN
    body_list( 1 ) := 'select';
    FOR i IN  1  .. n
    LOOP
        c := c || to_char(i) || ',';
        IF MOD(i,  20 ) =  19  THEN
            body_list(body_list.COUNT +  1 ) := c;
            c := '';
        END IF;
    END LOOP;
    body_list(body_list.COUNT +  1 ) := c;
    body_list(body_list.COUNT +  1 ) := ('0 from dual');
    FOR i IN  1  .. body_list.COUNT
    LOOP
        dbms_output.put_line(body_list(i));
    END LOOP;
    dbms_sql.parse(l_cursor,
                   body_list,
                   body_list.FIRST,
                   body_list.LAST,
                   TRUE,
                   dbms_sql.native);
    res := dbms_sql.EXECUTE(l_cursor);
END;
/
    n         NUMBER :=  200000 ;
                            *
ERROR at line  2 :
ORA- 03113 : end-of-file on communication channel
Process ID:  0 
Session ID:  149  Serial number:  31 


exit

C:\Windows\system32>sqlplus -s instance_killer/instance_killer
ERROR:
ORA- 12541 : TNS:no listener
Надеюсь не надо объяснять почему это один select. Весь вышенаписанный код представлен только для краткости воспроизведения.
По мотивам 10’000 columns in a query .
На 11.2.0.1 пофиксено.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37168145
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил поиграться с тройной аналитикой. А так, по-отдельности (по 1 или 2) - они хорошие ребята.
Код: plaintext
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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 2 . 0  - 64bit Production
PL/SQL Release  11 . 2 . 0 . 2 . 0  - Production
CORE     11 . 2 . 0 . 2 . 0       Production
TNS for Linux: Version  11 . 2 . 0 . 2 . 0  - Production
NLSRTL Version  11 . 2 . 0 . 2 . 0  - Production

SQL>
SQL> with s as
   2   (select trunc(level/ 2 ) id, level sm from dual connect by level <=  10 
   3   )
   4   select id, sm
   5   --,last_value(sm) over (order by id) fv_1
   6   ,last_value(sm) over (order by id range between unbounded preceding and current row) fv_2
   7   ,last_value(sm) over (order by id range between unbounded preceding and  0  preceding) fv_3
   8   from s;

        ID         SM       FV_2       FV_3
---------- ---------- ---------- ----------
          0            1            1            1 
          1            2            3            3 
          1            3            3            3 
          2            4            5            5 
          2            5            5            5 
          3            6            7            7 
          3            7            7            7 
          4            8            9            9 
          4            9            9            9 
          5           10           10           10 

 10  строк выбрано.

SQL>
SQL> with s as
   2   (select trunc(level/ 2 ) id, level sm from dual connect by level <=  10 
   3   )
   4   select id, sm
   5   ,last_value(sm) over (order by id) fv_1
   6   --,last_value(sm) over (order by id range between unbounded preceding and current row) fv_2
   7   ,last_value(sm) over (order by id range between unbounded preceding and  0  preceding) fv_3
   8   from s;

        ID         SM       FV_1       FV_3
---------- ---------- ---------- ----------
          0            1            1            1 
          1            2            3            3 
          1            3            3            3 
          2            4            5            5 
          2            5            5            5 
          3            6            7            7 
          3            7            7            7 
          4            8            9            9 
          4            9            9            9 
          5           10           10           10 

 10  строк выбрано.

SQL>
SQL> with s as
   2   (select trunc(level/ 2 ) id, level sm from dual connect by level <=  10 
   3   )
   4   select id, sm
   5   ,last_value(sm) over (order by id) fv_1
   6   ,last_value(sm) over (order by id range between unbounded preceding and current row) fv_2
   7   --,last_value(sm) over (order by id range between unbounded preceding and 0 preceding) fv_3
   8   from s;

        ID         SM       FV_1       FV_2
---------- ---------- ---------- ----------
          0            1            1            1 
          1            2            3            3 
          1            3            3            3 
          2            4            5            5 
          2            5            5            5 
          3            6            7            7 
          3            7            7            7 
          4            8            9            9 
          4            9            9            9 
          5           10           10           10 

 10  строк выбрано.

SQL>
SQL> with s as
   2   (select trunc(level/ 2 ) id, level sm from dual connect by level <=  10 
   3   )
   4   select id, sm
   5   ,last_value(sm) over (order by id) fv_1
   6   ,last_value(sm) over (order by id range between unbounded preceding and current row) fv_2
   7   ,last_value(sm) over (order by id range between unbounded preceding and  0  preceding) fv_3
   8   from s;
with s as
*
ошибка в строке  1 :
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу
Идентификатор процесса:  10482 
Идентификатор сеанса:  136  Порядковый номер:  41501 


SQL>

http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/functions004.htm#SQLRF06174 If you specified RANGE:

value_expr is a logical offset. It must be a constant or expression that evaluates to a positive numeric value or an interval literal.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37168510
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,

баг, конечно, но (ваааще), не аналитика (имхо)
в том смысле, что не вычисление
Код: plaintext
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.
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 1 . 0  - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> set line  200 
SQL>  with s as
   2   (select trunc(level/ 2 ) id, level sm from dual connect by level <=  10 
   3   )
   4   select id, sm
   5   ,+last_value(sm) over (order by id) fv_0
   6   , 0 +last_value(sm) over (order by id) fv_0
   7   ,cast(last_value(sm) over (order by id) as number) fv_0
   8   ,last_value(sm) over (order by id range between unbounded preceding and  0  following) fv_1
   9   ,last_value(sm) over (order by id range between unbounded preceding and current row) fv_2
  10   ,last_value(sm) over (order by id range between unbounded preceding and  0  preceding) fv_3
  11   from s;

        ID         SM       FV_0       FV_0       FV_0       FV_1       FV_2       FV_3
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
          0            1            1            1            1            1            1            1 
          1            2            3            3            3            3            3            3 
          1            3            3            3            3            3            3            3 
          2            4            5            5            5            5            5            5 
          2            5            5            5            5            5            5            5 
          3            6            7            7            7            7            7            7 
          3            7            7            7            7            7            7            7 
          4            8            9            9            9            9            9            9 
          4            9            9            9            9            9            9            9 
          5           10           10           10           10           10           10           10 

 10  rows selected.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37168712
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как говорится, вспомнить старенькое...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> select * from v$version where rownum =  1 ;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release  10 . 2 . 0 . 1 . 0  - Prod

SQL> select * from v$sql_plan_statistics_all where object_name = 'hello world';
ERROR:
ORA- 03113 : принят сигнал конца файла по коммуникационному каналу



строки не выбраны

SQL>
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37429101
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
Connected to:
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 2 . 0  - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> var c refcursor
SQL> exec open :c for select  1  from dual union all select  2  from dual

PL/SQL procedure successfully completed.

SQL> select :c from dual;

:C
----------------------
CURSOR STATEMENT :  1 

CURSOR STATEMENT :  1 

          1 
----------
          1 
          2 

SQL> /
select :c from dual
*
ERROR at line  1 :
ORA- 00604 : error occurred at recursive SQL level  1 
ORA- 01001 : invalid cursor

SQL> exec open :c for select  1  from dual union all select  2  from dual
BEGIN open :c for select  1  from dual union all select  2  from dual; END;

*
ERROR at line  1 :
ORA- 03113 : end-of-file on communication channel
Process ID:  32498 
Session ID:  4  Serial number:  4167 
-------------------------------
ORA- 07445 : exception encountered: core dump [pfrdsl()+ 35 ] [SIGSEGV] [ADDR:0x5B] [PC:0x84890F1] [Address not mapped to object] []
ORA- 07445 : exception encountered: core dump [pevm_EXECC()+ 518 ] [SIGSEGV] [ADDR:0x7F2900000008] [PC:0x91F4A52] [Address not mapped to object] []
ORA- 00600 : internal error code, arguments: [ 17285 ], [0x7F29D97D4758], [ 1 ], [0x25E1107B8], [], [], [], [], [], []
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37429133
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

а на 32 битном виндовозе (11.2.0.2.0) всё (вроде бы) адекватно
Код: plaintext
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.
Присоединен к:
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 2 . 0  - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> var c refcursor
SQL> exec open :c for select  1  from dual union all select  2  from dual

Процедура PL/SQL успешно завершена.

SQL> select :c from dual;

:C                                                                              
--------------------                                                            
CURSOR STATEMENT :  1                                                             

CURSOR STATEMENT :  1 

          1                                                                       
----------                                                                      
          1                                                                       
          2                                                                       


SQL> /
select :c from dual
*
ошибка в строке  1 :
ORA- 00604 : ошибка на рекурсивном SQL-уровне  1  
ORA- 01001 : неверный курсор 


SQL> exec open :c for select  1  from dual union all select  2  from dual
BEGIN open :c for select  1  from dual union all select  2  from dual; END;

*
ошибка в строке  1 :
ORA- 01001 : неверный курсор 
ORA- 06512 : на  line  1  
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37429158
Фотография pravednik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

аналогично и на SunOS 5.10 sparc (11,2,0,2 + PSU3)
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним SELECT-ом
    #37429177
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Код: plaintext
1.
2.
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 2 . 0  - 64bit Production
ORA- 07445 : exception encountered: core dump [pfrdsl()+ 35 ] [SIGSEGV] [ADDR:0x5B] [PC:0x84890F1] [Address not mapped to object] []
Какое приложение? Скорее всего, больше виновато оно.
...
Рейтинг: 0 / 0
пятничная задачка - убить себя одним 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
114 сообщений из 114, показаны все 5 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / пятничная задачка - убить себя одним SELECT-ом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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