powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle Database 12c. Новые возможности языка SQL
25 сообщений из 234, страница 3 из 10
Oracle Database 12c. Новые возможности языка SQL
    #38329763
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishзапрос 3 лажает аналогично 11g, что очевидно из комментария ( который же к результату заранее написан :)
Выполнил запрос 3 на Exadata (Oracle Database 11.2.0.3.17)
Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options

SQL > select 'Wrong! :((' Res ,grouping(a),a ,grouping(b),b
  2    from ( select 1 A ,1 B from dual
  3  ) group by grouping sets((a,b),a,b,())
  4  union all
  5  select 'Wrong too! :((' ,grouping(a),a ,grouping(b),b
  6    from ( select 1 A ,2 B from dual
  7  ) group by grouping sets((a,b),a,b,())
  8  union all
  9  select 'Wrong again! :((' ,grouping(a),a ,grouping(b),b
 10    from ( select count(*) A ,count(*) B from dual
 11  ) group by grouping sets((a,b),a,b,())
 12  union all
 13  select 'True! :))' ,grouping(a),a ,grouping(b),b
 14    from ( select 1 A ,count(*) B from dual
 15  ) group by grouping sets((a,b),a,b,())
 16  union all
 17    select 'True too! :))' ,grouping(a),a ,grouping(b),b
 18      from ( select count(dummy) A ,count(*) B from dual
 19  ) group by grouping sets((a,b),a,b,())
 20  union all
 21    select 'True again! :))' ,grouping(a),a ,grouping(b),b
 22      from ( select count(distinct dummy) A,count(dummy) B from dual
 23  ) group by grouping sets((a,b),a,b,())
 24  ;

RES              GROUPING(A)          A GROUPING(B)          B
---------------- ----------- ---------- ----------- ----------
Wrong! :((                 0          1           0          1
Wrong! :((                 0          1           0          1
Wrong! :((                 0          1           0          1
Wrong! :((                 1          1           1          1
Wrong too! :((             0          1           0          2
Wrong too! :((             0          1           1          2
Wrong too! :((             1                      0          2
Wrong too! :((             1                      1
Wrong again! :((           0          1           0          1
Wrong again! :((           0          1           0
Wrong again! :((           1                      0          1
Wrong again! :((           1                      0
Wrong again! :((           1                      1
True! :))                  0          1           0          1
True! :))                  0          1           1
True! :))                  1                      0          1
True! :))                  1                      1
True too! :))              0          1           0          1
True too! :))              0          1           1
True too! :))              1                      0          1
True too! :))              1                      1
True again! :))            0          1           0          1
True again! :))            0          1           1
True again! :))            1                      0          1
True again! :))            1                      1

25 rows selected.

Всё также неправильно?
(Нет времени разбираться в смысле команды, извините)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38329790
Фотография pravednik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SacramentopravednikОракл ссылается, нахМогли бы и sqlcode тогда уж зарезервировать. А то что это такое, у меня девелопер повис, снимать в диспечере задач прихордицо. Кудай это годиццо?
Интересно, к чему это ?
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38329834
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Проверилxtender, но вот переключения контекста все равно имхо будут, если в функции другие процедуры/функции использовать будешь. Вечерком проверю...будут

xtenderОтдельно интересно чьи функции будут выполняться PL/SQL-ные или SQL'ные при наличии обоих, типа LPAD, который имеет как pl/sql-ную так и SQL'ную версииpl/sql'ную

код теста
Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
SQL> sho parameter max_string

NAME                                 TYPE         VALUE
------------------------------------ ------------ ------------------------------
max_string_size                      string       STANDARD

SQL> @trace_pl_on

Session altered.

SQL> with
  2  function blabla(p_str varchar2) return varchar2 is
  3  begin
  4   return lpad(p_str, 5000, '*');
  5  end;
  6  select
  7    length(blabla(dummy)) lpad_plsql
  8  from dual;
  9  /
from dual
     *
ERROR at line 8:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 5

SQL> @trace_pl_last.sql

     RUNID  EVENT_SEQ EVENT_COMMENT                    EVENT_UNIT_OWNER   EVENT_UNIT
---------- ---------- -------------------------------- ------------------ -----------
         1          1 PL/SQL Trace Tool started
         1          2 Trace flags changed
         1          3 PL/SQL Virtual Machine started                      <anonymous>
         1          4 PL/SQL Internal Call                                <anonymous>
         1          5 PL/SQL Virtual Machine stopped

SQL> create function blabla2(p_str varchar2) return varchar2 is
  2  begin
  3     return lpad(p_str, 5000, '*');
  4  end;
  5  /

Function created.

SQL> select
  2    length(blabla2(dummy)) lpad_plsql
  3  from dual;
  length(blabla2(dummy)) lpad_plsql
         *
ERROR at line 2:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "XTENDER.BLABLA2", line 3


SQL> select
  2    length(lpad(dummy,5000, '*')) lpad_plsql
  3  from dual;

LPAD_PLSQL
----------
      4000

...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38329841
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринскийorawishзапрос 3 лажает аналогично 11g, что очевидно из комментария ( который же к результату заранее написан :)
Выполнил запрос 3 на Exadata (Oracle Database 11.2.0.3.17)
Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options

SQL > select 'Wrong! :((' Res ,grouping(a),a ,grouping(b),b
  2    from ( select 1 A ,1 B from dual
  3  ) group by grouping sets((a,b),a,b,())
  4  union all
  5  select 'Wrong too! :((' ,grouping(a),a ,grouping(b),b
  6    from ( select 1 A ,2 B from dual
  7  ) group by grouping sets((a,b),a,b,())
  8  union all
  9  select 'Wrong again! :((' ,grouping(a),a ,grouping(b),b
 10    from ( select count(*) A ,count(*) B from dual
 11  ) group by grouping sets((a,b),a,b,())
 12  union all
 13  select 'True! :))' ,grouping(a),a ,grouping(b),b
 14    from ( select 1 A ,count(*) B from dual
 15  ) group by grouping sets((a,b),a,b,())
 16  union all
 17    select 'True too! :))' ,grouping(a),a ,grouping(b),b
 18      from ( select count(dummy) A ,count(*) B from dual
 19  ) group by grouping sets((a,b),a,b,())
 20  union all
 21    select 'True again! :))' ,grouping(a),a ,grouping(b),b
 22      from ( select count(distinct dummy) A,count(dummy) B from dual
 23  ) group by grouping sets((a,b),a,b,())
 24  ;

RES              GROUPING(A)          A GROUPING(B)          B
---------------- ----------- ---------- ----------- ----------
Wrong! :((                 0          1           0          1
Wrong! :((                 0          1           0          1
Wrong! :((                 0          1           0          1
Wrong! :((                 1          1           1          1
Wrong too! :((             0          1           0          2
Wrong too! :((             0          1           1          2
Wrong too! :((             1                      0          2
Wrong too! :((             1                      1
Wrong again! :((           0          1           0          1
Wrong again! :((           0          1           0
Wrong again! :((           1                      0          1
Wrong again! :((           1                      0
Wrong again! :((           1                      1
True! :))                  0          1           0          1
True! :))                  0          1           1
True! :))                  1                      0          1
True! :))                  1                      1
True too! :))              0          1           0          1
True too! :))              0          1           1
True too! :))              1                      0          1
True too! :))              1                      1
True again! :))            0          1           0          1
True again! :))            0          1           1
True again! :))            1                      0          1
True again! :))            1                      1

25 rows selected.

Всё также неправильно?
(Нет времени разбираться в смысле команды, извините)
абсолютно так же (то есть три первых варианта неправильны , три последние - корректны)
а разбираться - это просто. union тут не при чем, он нужен только чтобы результаты нагляднее сравнивать.
весь смысл теста: выбираем одну строку = два столбца из дуала и считаем grouping sets по a,b,(a,b) и ()
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38329848
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
еще вот интересно:
Код: 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.
with 
function blabla(p_str varchar2) return varchar2 is
   s varchar2(32767);
begin
   s:=    lpad(p_str, 100, '1');
   s:= s||lpad(p_str, 100, '2');
   s:= s||lpad(p_str, 100, '3');
   s:= s||lpad(p_str, 100, '4');
   return s;
end;
select 
  length(blabla(dummy)) lpad_plsql
from dual
/
SQL> @trace_pl_last.sql

     RUNID  EVENT_SEQ EVENT_COMMENT                     EVENT_UNIT_OWNER   EVENT_UNIT
---------- ---------- --------------------------------- ------------------ -----------
         3          1 PL/SQL Trace Tool started
         3          2 Trace flags changed
         3          3 PL/SQL Virtual Machine started                       <anonymous>
         3          4 PL/SQL Internal Call                                 <anonymous>
         3          5 PL/SQL Internal Call                                 <anonymous>
         3          6 PL/SQL Internal Call                                 <anonymous>
         3          7 PL/SQL Internal Call                                 <anonymous>
         3          8 PL/SQL Virtual Machine stopped

8 rows selected.

...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38329861
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ну и просто чтобы дополнить предыдущее:
Код: 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.
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.
with 
function blabla(p_str varchar2) return varchar2 is
   s varchar2(32767);
begin
   s:=    lpad(p_str, 100, '1');
   s:= s||lpad(p_str, 100, '2');
   s:= s||lpad(p_str, 100, '3');
   s:= s||lpad(p_str, 100, '4');
   return s;
end;
select 
  length(blabla(dummy)) lpad_plsql
from dual
connect by level<=10
/
SQL> @trace_pl_last.sql

     RUNID  EVENT_SEQ EVENT_COMMENT                     EVENT_UNIT_OWNER   EVENT_UNIT
---------- ---------- --------------------------------- ------------------ -----------
         4          1 PL/SQL Trace Tool started
         4          2 Trace flags changed
         4          3 PL/SQL Virtual Machine started                       <anonymous>
         4          4 PL/SQL Internal Call                                 <anonymous>
         4          5 PL/SQL Internal Call                                 <anonymous>
         4          6 PL/SQL Internal Call                                 <anonymous>
         4          7 PL/SQL Internal Call                                 <anonymous>
         4          8 PL/SQL Virtual Machine stopped
         4          9 PL/SQL Virtual Machine started                       <anonymous>
         4         10 PL/SQL Internal Call                                 <anonymous>
         4         11 PL/SQL Internal Call                                 <anonymous>
         4         12 PL/SQL Internal Call                                 <anonymous>
         4         13 PL/SQL Internal Call                                 <anonymous>
         4         14 PL/SQL Virtual Machine stopped
         4         15 PL/SQL Virtual Machine started                       <anonymous>
         4         16 PL/SQL Internal Call                                 <anonymous>
         4         17 PL/SQL Internal Call                                 <anonymous>
         4         18 PL/SQL Internal Call                                 <anonymous>
         4         19 PL/SQL Internal Call                                 <anonymous>
         4         20 PL/SQL Virtual Machine stopped
         4         21 PL/SQL Virtual Machine started                       <anonymous>
         4         22 PL/SQL Internal Call                                 <anonymous>
         4         23 PL/SQL Internal Call                                 <anonymous>
         4         24 PL/SQL Internal Call                                 <anonymous>
         4         25 PL/SQL Internal Call                                 <anonymous>
         4         26 PL/SQL Virtual Machine stopped
         4         27 PL/SQL Virtual Machine started                       <anonymous>
         4         28 PL/SQL Internal Call                                 <anonymous>
         4         29 PL/SQL Internal Call                                 <anonymous>
         4         30 PL/SQL Internal Call                                 <anonymous>
         4         31 PL/SQL Internal Call                                 <anonymous>
         4         32 PL/SQL Virtual Machine stopped
         4         33 PL/SQL Virtual Machine started                       <anonymous>
         4         34 PL/SQL Internal Call                                 <anonymous>
         4         35 PL/SQL Internal Call                                 <anonymous>
         4         36 PL/SQL Internal Call                                 <anonymous>
         4         37 PL/SQL Internal Call                                 <anonymous>
         4         38 PL/SQL Virtual Machine stopped
         4         39 PL/SQL Virtual Machine started                       <anonymous>
         4         40 PL/SQL Internal Call                                 <anonymous>
         4         41 PL/SQL Internal Call                                 <anonymous>
         4         42 PL/SQL Internal Call                                 <anonymous>
         4         43 PL/SQL Internal Call                                 <anonymous>
         4         44 PL/SQL Virtual Machine stopped
         4         45 PL/SQL Virtual Machine started                       <anonymous>
         4         46 PL/SQL Internal Call                                 <anonymous>
         4         47 PL/SQL Internal Call                                 <anonymous>
         4         48 PL/SQL Internal Call                                 <anonymous>
         4         49 PL/SQL Internal Call                                 <anonymous>
         4         50 PL/SQL Virtual Machine stopped
         4         51 PL/SQL Virtual Machine started                       <anonymous>
         4         52 PL/SQL Internal Call                                 <anonymous>
         4         53 PL/SQL Internal Call                                 <anonymous>
         4         54 PL/SQL Internal Call                                 <anonymous>
         4         55 PL/SQL Internal Call                                 <anonymous>
         4         56 PL/SQL Virtual Machine stopped
         4         57 PL/SQL Virtual Machine started                       <anonymous>
         4         58 PL/SQL Internal Call                                 <anonymous>
         4         59 PL/SQL Internal Call                                 <anonymous>
         4         60 PL/SQL Internal Call                                 <anonymous>
         4         61 PL/SQL Internal Call                                 <anonymous>
         4         62 PL/SQL Virtual Machine stopped

62 rows selected.

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

А приложите еще ваши замечательные скрипты для профайлера
trace_pl_on и trace_pl_last, если не жалко.

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

да это простые совсем:
trace_pl_on.sql
Код: plsql
1.
alter session set events '10938 trace name context forever, level 1';

trace_pl_last.sql
Код: plsql
1.
2.
3.
4.
5.
6.
7.
col event_comment format a80
select 
   runid,event_seq,event_comment,event_unit_owner,event_unit
from plsql_trace_events e
where e.runid=(select max(runid) from plsql_trace_runs)
;
col event_comment clear

...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38331687
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender,
Спасибо!
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38331732
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У команд http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_6016.htm#i2067093] CREATE SEQUENCE и ALTER SEQUENCE появились новые фразы, необходимые для использования с другими новыми функциональными возможностями:
KEEP / NOKEEP

SESSION / GLOBAL

KEEP Specify KEEP if you want NEXTVAL to retain its original value during replay for Application Continuity. This behavior will occur only if the user running the application is the owner of the schema containing the sequence. This clause is useful for providing bind variable consistency at replay after recoverable errors. Refer to Oracle Database Development Guide for more information on Application Continuity.

NOKEEP Specify NOKEEP if you do not want NEXTVAL to retain its original value during replay for Application Continuity. This is the default .
Note:The KEEP and NOKEEP clauses apply only to the owner of the schema containing the sequence. You can control whether NEXTVAL retains its original value for other users during replay for Application Continuity by granting or revoking the KEEP SEQUENCE object privilege on the sequence. Refer to Table 18-2 for more information on the KEEP SEQUENCE object privilege.Extracted from Table 18-2
Object Privilege Name Operations Authorized KEEP SEQUENCEThe sequence pseudocolumn NEXTVAL retains its original value during replay for Application Continuity when the grantee is running the application. This privilege is useful for providing bind variable consistency when replaying after recoverable errors.If this privilege is granted or revoked between runtime and failover of a request, then the original value of NEXTVAL is not retained during replay for Application Continuity for that request. Note: This privilege is not granted by the GRANT ALL PRIVILEGES ON sequence statement. You must explicitly grant this privilege. Note: This privilege is part of the DBA role.

SESSION Specify SESSION to create a session sequence, which is a special type of sequence that is specifically designed to be used with global temporary tables that have session visibility. Unlike the existing regular sequences (referred to as "global" sequences for the sake of comparison), a session sequence returns a unique range of sequence numbers only within a session, but not across sessions. Another difference is that session sequences are not persistent. If a session goes away, so does the state of the session sequences that were accessed during the session.

Session sequences must be created by a read-write database but can be accessed on any read-write or read-only databases (either a regular database temporarily open read-only or a standby database).

The CACHE, NOCACHE, ORDER, or NOORDER clauses are ignored when specified with the SESSION clause.
See Also: Oracle Data Guard Concepts and Administration for more information on session sequences
GLOBAL Specify GLOBAL to create a global, or regular, sequence. This is the default .
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38331812
Фотография Sacramento
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринский, расскажыте-ка лучше про brand new know-how lateral inline view , которое всем всегда хотелос сделать, но было низзя.
Но поскольку хотелос очень сильно, то теперь можно. Наглядно, что было, что стало, преимущества, ограничения.
Потому как еще не у всех стоит...
XIIц
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38331831
Фотография essbase.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SacramentoПотому как еще не у всех стоит...
Откуда: from Paris with love
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332059
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, раз сделали варчар более 4000, то как нибудь это учли в log errors и DBMS_ERRLOG.CREATE_ERROR_LOG
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332077
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Shtock,

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

create_error_log создает нормально такую же:
Код: 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.
SQL> @param_ scalar%thresh

Name                                     VALUE   TYPE     DESCRIPTION
---------------------------------------- ------- -------- ------------------------------------------------------------
_scalar_type_lob_storage_threshold       5000    number   threshold for VARCHAR2, NVARCHAR2, and RAW storage as BLOB

Elapsed: 00:00:00.14
SQL> select * from user_lobs;

no rows selected

Elapsed: 00:00:00.38
SQL> create table t(v5001 varchar2(5001));

Table created.

SQL> select * from user_lobs;

TABLE_NAME                     COLUMN_NAME     SEGMENT_NAME                   TABLESPACE_NAME  
------------------------------ --------------- ------------------------------ -----------------
T                              V5001           SYS_LOB0000091706C00001$$      USERS            

SQL> exec dbms_errlog.create_error_log ('T','T_ERR');

PL/SQL procedure successfully completed.

SQL> select * from user_lobs;

TABLE_NAME                     COLUMN_NAME     SEGMENT_NAME                   TABLESPACE_NAME  
------------------------------ --------------- ------------------------------ -----------------
T                              V5001           SYS_LOB0000091706C00001$$      USERS            
T_ERR                          V5001           SYS_LOB0000091709C00006$$      USERS            

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

что данные длинные, вероятность того, что суровые индусские парни что-либо забыли очень высока :)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332223
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринский,
вопросик насчет инлайн функций (в кляузе with)
можно ли в with использовать pipelined ф-ции без предварительного создания табличного типа?

.....
stax
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332238
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
stax..Валерий Юринский,
вопросик насчет инлайн функций (в кляузе with)
можно ли в with использовать pipelined ф-ции без предварительного создания табличного типа?

.....
staxкак тогда декларировать в return надо было бы? :)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332280
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
xtender
Код: plsql
1.
_scalar_type_lob_storage_threshold

про этот параметр
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332335
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,
Давайте такую функцию. Проверю, что и как... :-)
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332358
Фотография 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
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332365
usolcew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

отличная находка, Саян!
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332488
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий Юринскийstax..,
Давайте такую функцию. Проверю, что и как... :-)
я не подумал, ведь ф-цию надо создавать в package для определения pl/sql типа, а такого в with нет

снимаю вопрос

.....
stax
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332517
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender,
кстати, ты не пробовал нарастающий итог через пайп функцию написать на новом pl\sql with?
...
Рейтинг: 0 / 0
Oracle Database 12c. Новые возможности языка SQL
    #38332665
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
usolcew,

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


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