powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle Database 12c. Новые возможности языка SQL
25 сообщений из 234, страница 7 из 10
Oracle Database 12c. Новые возможности языка SQL
    #38341305
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- по б о ку,
- по барабану,
- по ...
И обратное влияние сленга на русский язык:
- латерал тебе,
- латерня собачья,
- забить латерал на работу,
- ...
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38341312
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYТо есть добавить слово боковой к русскому переводу термина in-line view.


Хотя точнее было-бы "правобокий" , посколько LATERAL in-line view используется для левосторонней корреляции (left-correlation) и посему не подерживает forward-referencing:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> select d.dummy from dual d where exists
  2     (select decode(d2.dummy,d4.dummy,'X') x
  3      from LATERAL(select * from dual d3 where d3.dummy= /*'X'*/ d2.dummy ) d4, dual d2
  4     )
  5  /
    from LATERAL(select * from dual d3 where d3.dummy= /*'X'*/ d2.dummy ) d4, dual d2
                                                               *
ERROR at line 3:
ORA-00904: "D2"."DUMMY": invalid identifier


SQL>



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

А как вы перевели бы LATERAL на русский?

Спасибо!
ИМХО, наилучшим образом существо дела передает "перевод" в виде параметризованное представление .
Но собственно lateral при этом выпадает.

Вариант параметризованное ветвящее представление (ради охранения следов от lateral) выглядит многословным (и малек деревенским).

Просто боковое/ветвящее/плечевое , ИМХО, туманит вопрос об использовании французского языка на Рязанских просторах.

А варианты вроде коррелированного представления слишком мало отличимы на слух от коррелированных подзапросов.
Крыша неопытного читателя необязательно сумеет найти разницу.

Медики, между тем, не стесняются переводить lateral просто как латеральный - профессиональный термин и все. Кто в теме, тот знает как им пользоваться, и дополнительных описаний в специальных, не учебных, текстах не требуется.
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38341560
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYХотя точнее было-бы "правобокий"

IMHO скорее ответвление. Ну или как прилагательное - побочный (вторичный).
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38341570
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYSYТо есть добавить слово боковой к русскому переводу термина in-line view.
Хотя точнее было-бы "правобокий" , посколько LATERAL in-line view используется для левосторонней корреляции (left-correlation) и посему не подерживает forward-referencing:Всё же точнее (в)лево-коррелированный: (в)лево-коррелированное вложенное представление. По аналогии с http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#i2104990] left correlation of table_collection_expression
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38341775
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicSYпропущено...
Хотя точнее было-бы "правобокий" , посколько LATERAL in-line view используется для левосторонней корреляции (left-correlation) и посему не подерживает forward-referencing:Всё же точнее (в)лево-коррелированный: (в)лево-коррелированное вложенное представление. По аналогии с http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#i2104990] left correlation of table_collection_expression Очень хорошее терминологическое предложение!

Спасибо!
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38341863
init.ora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cross\outer apply появились (?)
http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_10002.htm#BABCHEAJ
Зачем тогда Lateral?
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38342178
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
init.oracross\outer apply появились (?)
http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_10002.htm#BABCHEAJ
Зачем тогда Lateral?
О! OUTER APPLY хочу!
А то раздражает обработка вот такого:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> SELECT n,yv
  2    FROM (SELECT XMLTYPE('<q><x n="1"><y>1-1</y></x><x n="2"/></q>') x from dual) q1,
  3         XMLTABLE('/q/x' PASSING q1.x
  4          COLUMNS n PATH '@n',
  5                  x XMLTYPE PATH '/*') q2,
  6         XMLTABLE('/x/y' PASSING q2.x
  7          COLUMNS yv PATH '/*') q3
  8  /
 
N          YV
---------- ----------
1          1-1
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38342203
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYstax..я подозревал что не слетит, мне кажется что для exists LATERAL не очень походит


Не путай correlated subquery и lateral in-line view:

SY.
да я вроде не очень то путаю

14605325
Stax..імхо, Lateral немножко не то, вот если б
from dual d2,(select * from dual d3 where d3.dummy= d2.dummy )d4


новая кляуза, осваиваюсь


SY, какой-то общедоступный аля 12.apex.oracle.com на 12 версии планируется?

.....
stax
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38342215
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RA\/EN,

и зачем тут outer apply? да и проще так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT n,yv
FROM   XMLTABLE('for $x in /q/x, $yv in $x/y
                   return <ROW>{$x/@n}{$yv}</ROW>' 
                PASSING XMLTYPE('<q><x n="1"><y>1-1</y></x><x n="2"/></q>')
                 COLUMNS n  PATH '@n'
                        ,yv PATH 'y'
               ) q2

...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38342329
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
init.oracross\outer apply появились (?)
http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_10002.htm#BABCHEAJ
Зачем тогда Lateral?
мож apply для ansi синтаксиса, а Lateral для ораклячого

.....
stax
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38342355
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicВсё же точнее (в)лево-коррелированный: (в)лево-коррелированное вложенное представление. По аналогии с http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#i2104990] left correlation of table_collection_expression

Не хочу "split hairs", но в документации есть два термина left correlation описывающий тип связи между обьектами тогда как lateral in-line view есть сам обьект. Если в будущих версиях oracle добавит right-correlation к lateral in-line view то и лево-коррелированное вложенное представление и мой "правобокий" придется менять. Так-что я бы не ипользовал лево/право в имени самого обьекта.

SY.
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38342793
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как хорошо начиналось..
и вот (мля) - началось )
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select a.* from (with
  function f_calc (str varchar2) return varchar2 is
     res simple_integer :=0;
  begin
     for i in 1..length (str) loop
       res := res + substr(str,i,1);
     end loop;
     return res;
  end;
select f_calc(regexp_replace('0535617772','\d(\d)?','\1')) as r from dual
) A;
ORA-32034: не поддерживается использование фразы WITH


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

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

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

Сахар пихают в рот, а чистый нахер получается кагда сахар пихают не туда :

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with
  function f_calc (str varchar2) return varchar2 is
     res simple_integer :=0;
  begin
     for i in 1..length (str) loop
       res := res + substr(str,i,1);
     end loop;
     return res;
  end;
select a.* from (
select f_calc(regexp_replace('0535617772','\d(\d)?','\1')) as r from dual
) A
/

R
------
20

SQL>



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

эдак Вы ещё и поддержку области видимости этой несчастной функции захотите, и перегрузку, и вообще полный PL/SQL в запросе! Обойдётесь синтаксическим сахаром.
а че, перезагрузку можно проверіть (всегото два with)


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

Сахар пихают в рот, а чистый нахер получается кагда сахар пихают не туда :

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with
  function f_calc (str varchar2) return varchar2 is
     res simple_integer :=0;
  begin
     for i in 1..length (str) loop
       res := res + substr(str,i,1);
     end loop;
     return res;
  end;
select a.* from (
select f_calc(regexp_replace('0535617772','\d(\d)?','\1')) as r from dual
) A
/

R
------
20

SQL>



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

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

SY.
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38343051
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OUTER JOINS
http://docs.oracle.com/cd/E16655_01/server.121/e17209/queries006.htm#i2054062 In previous releases of Oracle Database, in a query that performed outer joins of more than two pairs of tables,
a single table could be the null-generated table for only one other table.
Beginning with Oracle Database 12c, a single table can be the null-generated table for multiple tables.

For example, the following statement is allowed in Oracle Database 12c:
Код: plsql
1.
2.
SELECT * FROM A, B, D
  WHERE A.c1 = B.c2(+) and D.c3 = B.c4(+);


In this example, B, the null-generated table, is outer-joined to two tables, A and D. Refer to SELECT for the syntax for an outer join.

In previous releases of Oracle Database...
ORA-01417: a table may be outer joined to at most one other table
Код: 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.
SQL> select banner from v$version;

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

SQL> SELECT E.employee_id, E.email
  2       , E.department_id, D.department_name
  3       -- Руководитель и сотрудника, и подразделения, к которому приписан сотрудник
  4       -- NULL, если руководитель сотрудника не является руководителем подразделения
  5       --       или руководитель подразделения не является руководителем сотрудника
  6       --       или руководитель сотрудника неизвестен (NULL)
  7       --       или руководитель подразделения неизвестен (NULL)
  8       , M.email as mgr_email
  9  FROM employees E   -- Сотрудники
 10     , departments D -- Подразделения компании
 11     , employees M   -- Руководители сотрудников и/или подразделений
 12  WHERE E.department_id IN (10, 20, 90)
 13    AND E.department_id = D.department_id
 14    AND E.manager_id = M.employee_id (+) -- Руководитель сотрудника
 15    AND D.manager_id = M.employee_id (+) -- Руководитель подразделения
 16  ORDER BY E.department_id NULLS LAST, E.employee_id;
  AND E.manager_id = M.employee_id (+) -- Руководитель сотрудника
                   *
ERROR at line 14:
ORA-01417: a table may be outer joined to at most one other table


Beginning with Oracle Database 12c...
Код: 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.
SQL> SELECT banner FROM v$version;

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

SQL> SELECT E.employee_id, E.email
  2  	  , E.department_id, D.department_name
  3  	  -- Руководитель и сотрудника, и подразделения, к которому приписан сотрудник
  4  	  -- NULL, если руководитель сотрудника не является руководителем подразделения
  5  	  --	   или руководитель подразделения не является руководителем сотрудника
  6  	  --	   или руководитель сотрудника неизвестен (NULL)
  7  	  --	   или руководитель подразделения неизвестен (NULL)
  8  	  , M.email as mgr_email
  9  FROM employees E	-- Сотрудники
 10  	, departments D -- Подразделения компании
 11  	, employees M	-- Руководители сотрудников и/или подразделений
 12  WHERE E.department_id IN (10, 20, 90)
 13    AND E.department_id = D.department_id
 14    AND E.manager_id = M.employee_id (+) -- Руководитель сотрудника
 15    AND D.manager_id = M.employee_id (+) -- Руководитель подразделения
 16  ORDER BY E.department_id NULLS LAST, E.employee_id;

EMPLOYEE_ID EMAIL           DEPARTMENT_ID DEPARTMENT_NAME                MGR_EMAIL
----------- --------------- ------------- ------------------------------ ---------------
        200 JWHALEN                    10 Administration
        201 MHARTSTE                   20 Marketing
        202 PFAY                       20 Marketing                      MHARTSTE
        100 SKING                      90 Executive
        101 NKOCHHAR                   90 Executive                      SKING
        102 LDEHAAN                    90 Executive                      SKING

6 rows selected.
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38343227
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderRA\/EN,

и зачем тут outer apply? да и проще так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT n,yv
FROM   XMLTABLE('for $x in /q/x, $yv in $x/y
                   return <ROW>{$x/@n}{$yv}</ROW>' 
                PASSING XMLTYPE('<q><x n="1"><y>1-1</y></x><x n="2"/></q>')
                 COLUMNS n  PATH '@n'
                        ,yv PATH 'y'
               ) q2


А вторая строка: n=2, yv=NULL где? ;)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38343230
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий ЮринскийOUTER JOINS
http://docs.oracle.com/cd/E16655_01/server.121/e17209/queries006.htm#i2054062 In previous releases of Oracle Database, in a query that performed outer joins of more than two pairs of tables,
a single table could be the null-generated table for only one other table.
Beginning with Oracle Database 12c, a single table can be the null-generated table for multiple tables.

For example, the following statement is allowed in Oracle Database 12c:
Код: plsql
1.
2.
SELECT * FROM A, B, D
  WHERE A.c1 = B.c2(+) and D.c3 = B.c4(+);


In this example, B, the null-generated table, is outer-joined to two tables, A and D. Refer to SELECT for the syntax for an outer join.

In previous releases of Oracle Database...
ORA-01417: a table may be outer joined to at most one other table
Код: 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.
SQL> select banner from v$version;

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

SQL> SELECT E.employee_id, E.email
  2       , E.department_id, D.department_name
  3       -- Руководитель и сотрудника, и подразделения, к которому приписан сотрудник
  4       -- NULL, если руководитель сотрудника не является руководителем подразделения
  5       --       или руководитель подразделения не является руководителем сотрудника
  6       --       или руководитель сотрудника неизвестен (NULL)
  7       --       или руководитель подразделения неизвестен (NULL)
  8       , M.email as mgr_email
  9  FROM employees E   -- Сотрудники
 10     , departments D -- Подразделения компании
 11     , employees M   -- Руководители сотрудников и/или подразделений
 12  WHERE E.department_id IN (10, 20, 90)
 13    AND E.department_id = D.department_id
 14    AND E.manager_id = M.employee_id (+) -- Руководитель сотрудника
 15    AND D.manager_id = M.employee_id (+) -- Руководитель подразделения
 16  ORDER BY E.department_id NULLS LAST, E.employee_id;
  AND E.manager_id = M.employee_id (+) -- Руководитель сотрудника
                   *
ERROR at line 14:
ORA-01417: a table may be outer joined to at most one other table


Beginning with Oracle Database 12c...
Код: 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.
SQL> SELECT banner FROM v$version;

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

SQL> SELECT E.employee_id, E.email
  2  	  , E.department_id, D.department_name
  3  	  -- Руководитель и сотрудника, и подразделения, к которому приписан сотрудник
  4  	  -- NULL, если руководитель сотрудника не является руководителем подразделения
  5  	  --	   или руководитель подразделения не является руководителем сотрудника
  6  	  --	   или руководитель сотрудника неизвестен (NULL)
  7  	  --	   или руководитель подразделения неизвестен (NULL)
  8  	  , M.email as mgr_email
  9  FROM employees E	-- Сотрудники
 10  	, departments D -- Подразделения компании
 11  	, employees M	-- Руководители сотрудников и/или подразделений
 12  WHERE E.department_id IN (10, 20, 90)
 13    AND E.department_id = D.department_id
 14    AND E.manager_id = M.employee_id (+) -- Руководитель сотрудника
 15    AND D.manager_id = M.employee_id (+) -- Руководитель подразделения
 16  ORDER BY E.department_id NULLS LAST, E.employee_id;

EMPLOYEE_ID EMAIL           DEPARTMENT_ID DEPARTMENT_NAME                MGR_EMAIL
----------- --------------- ------------- ------------------------------ ---------------
        200 JWHALEN                    10 Administration
        201 MHARTSTE                   20 Marketing
        202 PFAY                       20 Marketing                      MHARTSTE
        100 SKING                      90 Executive
        101 NKOCHHAR                   90 Executive                      SKING
        102 LDEHAAN                    90 Executive                      SKING

6 rows selected.


Заверните парочку 12c, беру!!!
А то пятиэтажной вложенности запросы из-за этого ограничения жутко бесили.
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38343248
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RA\/ENА вторая строка: n=2, yv=NULL где? ;)
действительно, где?
RA\/ENinit.oracross\outer apply появились (?)
http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_10002.htm#BABCHEAJ
Зачем тогда Lateral?
О! OUTER APPLY хочу!
А то раздражает обработка вот такого:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> SELECT n,yv
  2    FROM (SELECT XMLTYPE('<q><x n="1"><y>1-1</y></x><x n="2"/></q>') x from dual) q1,
  3         XMLTABLE('/q/x' PASSING q1.x
  4          COLUMNS n PATH '@n',
  5                  x XMLTYPE PATH '/*') q2,
  6         XMLTABLE('/x/y' PASSING q2.x
  7          COLUMNS yv PATH '/*') q3
  8  /
 
N          YV
---------- ----------
1          1-1


плюсик поставь, чтобы вторая строка появилась...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT n,yv
  FROM (SELECT XMLTYPE('<q><x n="1"><y>1-1</y></x><x n="2"/></q>') x from dual) q1,
       XMLTABLE('/q/x' PASSING q1.x
        COLUMNS n PATH '@n',
                x XMLTYPE PATH '/*') q2,
       XMLTABLE('/x/y' PASSING q2.x
        COLUMNS yv PATH '/*')(+) q3
/

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

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

SY.
4 страница (примерно) от 14573086 до 14573959
правило, если
Код: plsql
1.
ляля

- синтаксически корректный запрос, то и
Код: plsql
1.
 select * from ( ляля )

- тоже корректный запрос.
продержалось со времен oracle 8.0
да и для семерки - чтобы сие работало, достаточно было у ляля ампутировать ордер бай кляузу.
а то, что приключилось в 12с - гораздо более гемороидальный (сложный = мало надежный) разбор требует, на тему - где рот для того сахара.
а последствия могут быть веселые - ГУИ всяки-разные начнут болеть, потеть и не факт, что все выживут
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38343582
antonelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще вопрос с счастливым обладателям: Не стало ли возможным делать запрос из REF CURSOR?
Те будет ли работать такая ф-я:

Код: plaintext
1.
2.
3.
4.
5.
6.
function get_name_from_cursor(ip_cursor SYS_REFCURSOR) RETURN SYS_REFCURSOR as
 l_res SYS_REFCURSOR;
begin
 open l_res for 
 select first_name, last_name from TABLE(ip_cursor);
 return l_res;
end;
...
Рейтинг: 0 / 0
25 сообщений из 234, страница 7 из 10
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle Database 12c. Новые возможности языка SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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