powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle Database 12c. Новые возможности языка SQL
25 сообщений из 234, страница 4 из 10
Oracle Database 12c. Новые возможности языка SQL
    #38332666
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Vint,

без динамических типов с видимостью только внутри одного запроса такие вещи в принципе писать неинтересно :)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332675
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender,

да мне только скорость была интересна. ничего, скоро мне тестовую поставят - начну изучать)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332678
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не знаю нужно ли говорить, но extended datatypes передаются как обычные, а не как clob'ы по локатору
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332688
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishа как насчет факторинга внутри факторинга?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
with t2 as (
  with t as (select * from dual) select * from t
) select * from t2;

with t2 as (
  select * from (with t as (select * from dual) select * from t)
) select * from t2;


по прежнему что ли?
Код: plsql
1.
ORA-32034: не поддерживается использование фразы WITH


Да, по-прежнему имеем
ORA-32034: unsupported use of WITH clause
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 16 13:29:19 2013

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

SQL> @with_with_with

SQL> with t2 as (
  2    with t as (select * from dual) select * from t
  3  ) select * from t2;
  with t as (select * from dual) select * from t
  *
ERROR at line 2:
ORA-32034: unsupported use of WITH clause

SQL> with t2 as (
  2    select * from (with t as (select * from dual) select * from t)
  3  ) select * from t2;
  select * from (with t as (select * from dual) select * from t)
                 *
ERROR at line 2:
ORA-32034: unsupported use of WITH clause

...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332691
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринскийorawishа как насчет факторинга внутри факторинга?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
with t2 as (
  with t as (select * from dual) select * from t
) select * from t2;

with t2 as (
  select * from (with t as (select * from dual) select * from t)
) select * from t2;


по прежнему что ли?
Код: plsql
1.
ORA-32034: не поддерживается использование фразы WITH


Да, по-прежнему имеем
ORA-32034: unsupported use of WITH clause
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 16 13:29:19 2013

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

SQL> @with_with_with

SQL> with t2 as (
  2    with t as (select * from dual) select * from t
  3  ) select * from t2;
  with t as (select * from dual) select * from t
  *
ERROR at line 2:
ORA-32034: unsupported use of WITH clause

SQL> with t2 as (
  2    select * from (with t as (select * from dual) select * from t)
  3  ) select * from t2;
  select * from (with t as (select * from dual) select * from t)
                 *
ERROR at line 2:
ORA-32034: unsupported use of WITH clause


и это очень,очень жаль :(
спасибо!
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332699
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishВалерий Юринскийпропущено...

Да, по-прежнему имеем
ORA-32034: unsupported use of WITH clause
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 16 13:29:19 2013

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

SQL> @with_with_with

SQL> with t2 as (
  2    with t as (select * from dual) select * from t
  3  ) select * from t2;
  with t as (select * from dual) select * from t
  *
ERROR at line 2:
ORA-32034: unsupported use of WITH clause

SQL> with t2 as (
  2    select * from (with t as (select * from dual) select * from t)
  3  ) select * from t2;
  select * from (with t as (select * from dual) select * from t)
                 *
ERROR at line 2:
ORA-32034: unsupported use of WITH clause


и это очень,очень жаль :(
спасибо!А может и к лучшему!?

Чтобы не было, как в Си - массив указателей на массив указателей,
содержащий указатели на массив указателей на элементы массива указателей...
... на массив переменных... :-)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332759
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринскийorawishпропущено...

и это очень,очень жаль :(
спасибо!А может и к лучшему!?

Чтобы не было, как в Си - массив указателей на массив указателей,
содержащий указатели на массив указателей на элементы массива указателей...
... на массив переменных... :-)
у меня интерес вполне утилитарный - (пусть: ) есть (произвольный) запрос t, который надо использовать во from другого запроса t2.
ну и если в t есть with кляуза, то в t2 её быть не может.
а я просто хочу не думать про синтаксическую конструкцию запроса - мне достаточно знать его состав столбцов и их прикладной смысл.
ограничение же весьма сковывает алгоритмы для генерации запросов из запросов.
1) корявые генерашки получаются.
2) использовать объединение или джоин двух запросов, в каждом из которых факторинг уже есть = облом

а как следствие - если работа 2) над запросами предполагается, то на факторинг, вообще, табу
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332804
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishВалерий Юринскийпропущено...
А может и к лучшему!?

Чтобы не было, как в Си - массив указателей на массив указателей,
содержащий указатели на массив указателей на элементы массива указателей...
... на массив переменных... :-)
у меня интерес вполне утилитарный - (пусть: ) есть (произвольный) запрос t, который надо использовать во from другого запроса t2.
ну и если в t есть with кляуза, то в t2 её быть не может.
а я просто хочу не думать про синтаксическую конструкцию запроса - мне достаточно знать его состав столбцов и их прикладной смысл.
ограничение же весьма сковывает алгоритмы для генерации запросов из запросов.
1) корявые генерашки получаются.
2) использовать объединение или джоин двух запросов, в каждом из которых факторинг уже есть = облом

а как следствие - если работа 2) над запросами предполагается, то на факторинг, вообще, табу
впрочем, тут я увлёкся и заврался. на одном уровне вложенности подзапросов >1 факторинг возможен
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from(
  select * from (
    select * from (select * from (with t as (select * from tab)  select * from t)) a
                 ,(select * from (with t as (select * from dual) select * from t)) b
  ) where rownum < 10
)
/
..
9 строк выбрано.
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332817
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishу меня интерес вполне утилитарный - (пусть: ) есть (произвольный) запрос t, который надо использовать во from другого запроса t2.
ну и если в t есть with кляуза, то в t2 её быть не может.
а я просто хочу не думать про синтаксическую конструкцию запроса - мне достаточно знать его состав столбцов и их прикладной смысл.
ограничение же весьма сковывает алгоритмы для генерации запросов из запросов.
А в генераторе весь факторинг свалить в один with и дальше вертеть запросы как хочется - не вариант?
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332850
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousorawishу меня интерес вполне утилитарный - (пусть: ) есть (произвольный) запрос t, который надо использовать во from другого запроса t2.
ну и если в t есть with кляуза, то в t2 её быть не может.
а я просто хочу не думать про синтаксическую конструкцию запроса - мне достаточно знать его состав столбцов и их прикладной смысл.
ограничение же весьма сковывает алгоритмы для генерации запросов из запросов.
А в генераторе весь факторинг свалить в один with и дальше вертеть запросы как хочется - не вариант?
не.., в общем случае - не вариант.
причина - возможные конфликты (то бишь - накладки) алиасов. случись такое, и разбор получается нетревиальный
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332866
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishпричина - возможные конфликты (то бишь - накладки) алиасов.
Это можно разрулить.
Как вариант - на этапе размещения запроса в репозитории генератора - к примеру, требовать именования алиасов в виде, обеспечивающем их тривиальный "выпил" из текста запроса генератором.
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332903
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousorawishпричина - возможные конфликты (то бишь - накладки) алиасов.
Это можно разрулить.
Как вариант - на этапе размещения запроса в репозитории генератора - к примеру, требовать именования алиасов в виде, обеспечивающем их тривиальный "выпил" из текста запроса генератором.
в принципе - можно, только это еще потребует:
(как минимум) - репозитария,
согласованности с правилами именования объектов в базе,
нужда в серьёзном синтаксическом разборе таки останется (ибо литералы..),
ну и имена алиасов будут однозначно мерзкие
:)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332944
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishну и имена алиасов будут однозначно мерзкие
:)
Слово "репозиторий" я употребил условно - как некое место, где пасутся исходные запросы, на которые охотится генератор.
Что до мерзости - то вложенные with с повторяющимися алиасами вызвали бы у меня еще большее омерзение
:)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332991
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousorawishну и имена алиасов будут однозначно мерзкие
:)
Слово "репозиторий" я употребил условно - как некое место, где пасутся исходные запросы, на которые охотится генератор.
Что до мерзости - то вложенные with с повторяющимися алиасами вызвали бы у меня еще большее омерзение
:)
Слово "репозиторий".. - всё так. тем не менее - текста запроса получается недостаточно, нужно к нему еще хранить историю его трансформаций.
ну повторяющиеся - это я не только (и не столько :) имел ввиду, что внутри одного селекта
а, например, ситуацию, когда надо к
Код: plsql
1.
with t as (select * from emp) select * from t


примантурить во фром
Код: plsql
1.
with t as (select * from dept) select * from t
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38333027
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishисторию его трансформаций.
Перебор?

orawishситуацию, когда надо к
Код: plsql
1.
with t as (select * from emp) select * from t


примантурить во фром
Код: plsql
1.
with t as (select * from dept) select * from t


Вот и я о том - как это будет выглядеть на паре-тройке "вложенных", в факторинге каждого из которых по паре-тройке таких же :)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38333062
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousorawishисторию его трансформаций.
Перебор?

ну, наверное, перебор :)
andrey_anonymousВот и я о том - как это будет выглядеть на паре-тройке "вложенных", в факторинге каждого из которых по паре-тройке таких же :) :)
а сухой остаток всё же такой:
если надо произвольный запрос трансформировать (предикатов ему добавить, группировку, сортировку, аналитику и т.п.),
то не
Код: plsql
1.
2.
with ляля as (исходный запрос)
select новые_дрова from ляля новые_ворота;


а (по-прежнему)
Код: plsql
1.
select новые_дрова from (исходный запрос) новые_ворота;
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38333908
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринский
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL*Plus: Release 12.1.0.1.0 Production on Fri Jul 12 14:30:18 2013

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

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

SQL> WITH                                                                          
FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
IS
BEGIN
   RETURN p_str || '+';
END;
--
SELECT tname, str_plus(tname) FROM tab WHERE ROWNUM <= 2;   
/

TNAME           STR_PLUS(TNAME)
---------------- -------------------------
ACCESS$     ACCESS$+
ACLMV$      ACLMV$+

Выделил версию SQL*Plus 12.1.0.1.0,
чтобы подчеркнуть, что старый SQL*Plus такого выполнить не может.

Скачал свежайшую (от 11-jul-2013) версию Oracle SQL Developer 4.0 Early Adopter 1 (Version 4.0.0.12, Build MAIN-12.27)
Его пока тоже не научили выполнять такие конструкции :-(
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Error starting at line : 1 in command -
WITH                                                                          
FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
IS
BEGIN
   RETURN p_str || '+'
Error at Command Line : 2 Column : 1
Error report -
SQL Error: ORA-06553: PLS-103: Encountered the symbol "end-of-file" when expecting one of the following:

   * & = - + ; < / > at in is mod remainder not rem
   <an exponent (**)> <> or != or ~= >= <= <> and or like like2
   like4 likec between || member submultiset
06553. 00000 -  "PLS-%s: %s"
*Cause:    
*Action:

Error starting at line : 6 in command -
END
Error report -
Unknown Command


Так что пока работаем только с SQL*Plus 12.1.0.1
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38334198
init.ora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поведение рекурсии, я так понимаю, не изменилось?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with x as(
	select 1 a from dual union all
	select 2 a from dual union all
	select 3 a from dual  
)
,y(d) as(
	select a from x where a=1
	
	union all
	
	select d
	from( 
		select x.a d
		from x, y where x.a=y.d+1
	)
)

select *
from y
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38334253
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
init.ora,
мож
select x.a+1 d

зи
догадываюсь что Ваш вопрос не в етом


ps
в Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -
рекурсивный запрос с датами бузит,
о 12-ке не спрашиваю, бо кажись в 11.2.0.3.0 исправили

.....
stax
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38334270
init.ora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stax..init.ora,
мож
select x.a+1 d

зи
догадываюсь что Ваш вопрос не в етом


ps
в Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -
рекурсивный запрос с датами бузит,
о 12-ке не спрашиваю, бо кажись в 11.2.0.3.0 исправили

.....
stax
не, все норм с запросом :)
интересует ORA-32042
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38334345
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
init.oraне, все норм с запросом :)

шот я опять торможу,
что должен вернуть если без "подзапроса"?

.....
stax
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38334574
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
init.oraповедение рекурсии, я так понимаю, не изменилось?
ORA-32042: recursive WITH clause must reference itself directly in one of the UNION ALL branches
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with x as(
    select 1 a from dual union all
    select 2 a from dual union all
    select 3 a from dual)
 , y(d) as(
    select a from x where a=1
    union all
    select d
    from(select x.a d from x, y where x.a=y.d+1
    )
)
select * from y;
SQL> SQL> SQL> SQL>   2    3    4    5    6    7    8    9   10   11   12      from(select x.a d from x, y where x.a=y.d+1
                              *
ERROR at line 9:
ORA-32042: recursive WITH clause must reference itself directly in one of the UNION ALL branches

...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38334631
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ребят 2 просьбы.
1) у кого уже есть 12 попробуйте этот запрос плиз, ради интереса:
Код: plsql
1.
select * from dual join dual on 1 = 1;


2) и дайте пожалуйста ссылку для скачивание презентацию Тома

спасибо
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38335449
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ramin Hashimzadeребят 2 просьбы.
1) у кого уже есть 12 попробуйте этот запрос плиз, ради интереса:
Код: plsql
1.
select * from dual join dual on 1 = 1;


2) и дайте пожалуйста ссылку для скачивание презентацию Тома

спасибо
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38336334
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ramin Hashimzade1) у кого уже есть 12 попробуйте этот запрос плиз, ради интереса:
Код: plsql
1.
select * from dual join dual on 1 = 1;



Код: plsql
1.
2.
3.
select * from dual join dual on 1 = 1;

select banner from v$version where rownum = 1;



Код: plsql
1.
2.
3.
4.
5.
6.
7.
DUMMY DUMMY
----- -----
X     X     

BANNER                                                                         
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production




Код: plsql
1.
2.
3.
4.
5.
6.
7.
DUMMY DUMMY
----- -----
X     X     

BANNER                                                                         
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production     



А какой ожидался результат?
...
Рейтинг: 0 / 0
25 сообщений из 234, страница 4 из 10
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle Database 12c. Новые возможности языка SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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