powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_OUTPUT.GET_STATUS ?
36 сообщений из 36, показаны все 2 страниц
DBMS_OUTPUT.GET_STATUS ?
    #39640093
Nobody111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли получить, в сессии сейчас dbms_output.enable или disable?
Делаю добавку в код, который выдает в serveroutput дополнительную информацию, но создает некоторое замедление выполнения. Если output выключен, лучше было бы этот код не выполнять.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640111
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nobody111, Можно ручками, через контекстные переменные (sys_context)
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640121
Nobody111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
j2k, ручками не то. Пользователь может в sqlplus сказать set serveroutput on, и зачем пользователю тут лишние движения ручками...
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640126
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nobody111Можно ли получить, в сессии сейчас dbms_output.enable или disable? 21356511
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640138
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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> set serverout on
SQL> begin
  2    dbms_output.put_line('132');
  3    begin
  4      dbms_output.put(rpad(1,32767));
  5      dbms_output.put(1);
  6      -- OFF
  7    exception
  8      when others then
  9        null; --ON
 10    end;
 11    dbms_output.put_line('465');
 12  end;
 13  /
132
465

PL/SQL procedure successfully completed.

SQL> set serverout off
SQL> /

PL/SQL procedure successfully completed.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640153
Nobody111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic, класс, спасибо!
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640155
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nobody111,

если буффер полностью Ваш (до Вас никто на добавлял строки) то можно через одноместо
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
declare
 v1 varchar2(100);
 s  number;
begin
 dbms_output.disable;
 dbms_output.put_line('test');
 dbms_output.get_line(v1,s);
 if s=1 then
   null; --disable
 else
   null; --enable
 end if; 
 dbms_output.enable;
 dbms_output.put_line(v1||' '||s);
end;
/




зы
как-то ж dbms_output знает свой статус, наверняка enable/disable возводят пакетный флажок
разврапить пакет и глянуть шо там

.....
stax
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640158
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxто можно через одноместоСтанислав, я показал то место.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640160
Nobody111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxзы
как-то ж dbms_output знает свой статус, наверняка enable/disable возводят пакетный флажок
разврапить пакет и глянуть шо там

.....
stax
да, тоже такие смутные мысли бродили, надо будет как нибудь...
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640163
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

красивое решения, не видел (страничку не обновлял) и не знал о таком решении
причем об ORU-10028 я знал
думал что он все-таки добавит в буффер rpad(1,32767);
.....
stax
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640175
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxпричем об ORU-10028 я знал
думал что он все-таки добавит в буффер rpad(1,32767);
Код: plsql
1.
2.
3.
4.
5.
6.
      STRLEN := NVL(LENGTHB(A), 0);
      IF ((STRLEN + LINEBUFLEN) > 32767) THEN
        LINEBUFLEN := 0; BUF(PUTIDX) := '';
        RAISE_APPLICATION_ERROR(-20000, 'ORU-10028: line length overflow, ' ||
          'limit of 32767 bytes per line');
      END IF;

...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640186
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxпричем об ORU-10028 я знал
думал что он все-таки добавит в буффер rpad(1,32767);
Код: plsql
1.
2.
3.
4.
5.
6.
      STRLEN := NVL(LENGTHB(A), 0);
      IF ((STRLEN + LINEBUFLEN) > 32767) THEN
        LINEBUFLEN := 0; BUF(PUTIDX) := '';
        RAISE_APPLICATION_ERROR(-20000, 'ORU-10028: line length overflow, ' ||
          'limit of 32767 bytes per line');
      END IF;



спасибо, не подозревал об LINEBUFLEN := 0; BUF(PUTIDX) := '';

исходка? как насчет недокументированного "флажка" для enable/disable, спрятали?

зы
хотя уже не актуально
21387793 красиво работает

.....
stax
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640197
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxхотя уже не актуально
21387793 красиво работаетОсталось выяснить, что за вычисления делаются ради dbms_output, чтобы такая проверка оказалась дешевле холостого вызова put_line.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640277
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

и надо чутку допилить, а то будет неправильно "слетать" при маленьком size

....
stax
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640289
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxи надо чутку допилить, а то будет неправильно "слетать" при маленьком sizeА просто проверить при
Код: plsql
1.
set serverout on size 10000

?
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640424
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicА просто проверить при ?
согласен, Nobody111 не важно из-за чего слетает, важен токо факт

.....
stax
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640541
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxне важно из-за чего слетает,Это твои домыслы. "Слетает" так же.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39640558
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Staxхотя уже не актуально
21387793 красиво работаетОсталось выяснить, что за вычисления делаются ради dbms_output, чтобы такая проверка оказалась дешевле холостого вызова put_line.

добрался до компа
для теста убрал dbms_output.put(1);

Код: 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.
SQL> ed
Wrote file afiedt.buf

  1  begin
  2    dbms_output.enable(null);
  3    dbms_output.put_line('132');
  4     begin
  5       dbms_output.put(rpad(1,32765));
  6  --     dbms_output.put(1);
  7       -- OFF
  8  --    exception
  9  --      when others then
 10  --        null; --ON
 11      end;
 12      dbms_output.put_line('465');
 13* end;
SQL> /
begin
*
ERROR at line 1:
ORA-20000: ORU-10028: line length overflow, limit of 32767 bytes per line
ORA-06512: at "SYS.DBMS_OUTPUT", line 32
ORA-06512: at "SYS.DBMS_OUTPUT", line 91
ORA-06512: at "SYS.DBMS_OUTPUT", line 112
ORA-06512: at line 12


SQL> ed
Wrote file afiedt.buf

  1  begin
  2    dbms_output.enable(2000);
  3    dbms_output.put_line('132');
  4     begin
  5       dbms_output.put(rpad(1,32765));
  6  --     dbms_output.put(1);
  7       -- OFF
  8  --    exception
  9  --      when others then
 10  --        null; --ON
 11      end;
 12      dbms_output.put_line('465');
 13* end;
SQL> /
begin
*
ERROR at line 1:
ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
ORA-06512: at "SYS.DBMS_OUTPUT", line 32
ORA-06512: at "SYS.DBMS_OUTPUT", line 97
ORA-06512: at line 5


SQL>




у меня слетает при 32765 (мож от версии зависит/фича)

для себя сделаю разные коды возврата для ORU-10027 и ORU-10028

зы
повторюсь
для obody111 ето не важно

зыы
интересно
ORU уникальны, или могут пересекатся в зависимости от пакета?

.....
stax
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641007
Nobody111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxElicА просто проверить при ?
согласен, Nobody111 не важно из-за чего слетает, важен токо факт

.....[email=]
staxтеоретически не все равно, 5000 за глаза хватит, а практически вероятностью того, что будет зада нsize, можно пренебречь
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641169
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Elic,

спасибо, сохранил себе в таком виде
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace 
function is_output_enabled return boolean deterministic is
   str_long constant varchar(32767):=rpad('x',32767);
begin
   dbms_output.new_line;
   dbms_output.put(str_long);
   dbms_output.put(str_long);
   return false;
exception 
   when others then 
      return true; 
end;
/



зы. с компилированной функцией гораздо быстрее
Код: 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> set serverout on size 10000
SQL> begin
  2     dbms_output.put_line('old data');
  3     if is_output_enabled
  4        then dbms_output.put_line('enabled');
  5        else raise_application_error(-20000,'disabled');
  6     end if;
  7  end;
  8  /
old data
enabled

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.01
SQL> set serverout off
SQL> begin
  2     dbms_output.put_line('old data');
  3     if is_output_enabled
  4        then dbms_output.put_line('enabled');
  5        else raise_application_error(-20000,'disabled');
  6     end if;
  7  end;
  8  /
begin
*
ERROR at line 1:
ORA-20000: disabled
ORA-06512: at line 5


Elapsed: 00:00:00.01
SQL> declare
  2     function is_output_enabled return boolean deterministic is
  3        str_long constant varchar(32767):=rpad('x',32767);
  4     begin
  5        dbms_output.new_line;
  6        dbms_output.put(str_long);
  7        dbms_output.put(str_long);
  8        return false;
  9     exception
 10        when others then
 11           return true;
 12     end;
 13  begin
 14     dbms_output.put_line('old data');
 15     if is_output_enabled
 16        then dbms_output.put_line('enabled');
 17        else raise_application_error(-20000,'disabled');
 18     end if;
 19  end;
 20  /
declare
*
ERROR at line 1:
ORA-20000: disabled
ORA-06512: at line 17


Elapsed: 00:00:03.08

...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641191
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender
Код: plsql
1.
   dbms_output.new_line;

Искажает буфер.
xtender
Код: plsql
1.
2.
SQL> declare
  2     function is_output_enabled return boolean deterministic is

Во-первых, не понимаю, зачем это вообще нужно.
Во-вторых, версионно:
Код: plsql
1.
2.
3.
4.
5.
   function is_output_enabled return boolean deterministic is
            *
ERROR at line 2:
ORA-06550: line 2, column 13:
PLS-00712: illegal option for subprogram IS_OUTPUT_ENABLED


xtenderзы. с компилированной функцией гораздо быстрее
Код: plsql
1.
Elapsed: 00:00:03.08

Тебе показалось. Неужели чудовищная неправдоподобность величины не вызвала сомнений?
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641206
Nobody111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicВо-вторых, версионно:
Код: plsql
1.
2.
3.
4.
5.
   function is_output_enabled return boolean deterministic is
            *
ERROR at line 2:
ORA-06550: line 2, column 13:
PLS-00712: illegal option for subprogram IS_OUTPUT_ENABLED




Ну, 32767 - тоже версионно. Когда-то предел длины строки здесь был 256.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641216
Nobody111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее, 255, вроде бы в 9.2 еще.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641224
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nobody111Когда-то предел длины строки здесь был 256.Во-первых, совсем не здесь, а во-вторых, не 256.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641329
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ElicИскажает буфер.это лучше, чем потерять put...

ElicВо-вторых, версионно:это не то "версионно", из-за которого стоило бы переживать...

ElicТебе показалось.отнюдь... я прекрасно знаю где, когда и куда это время уходит
Код: 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.
SQL> select * from v$version;

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

Elapsed: 00:00:00.30

SQL> @plans/flush_sql.sql
Enter value for sql_id: c8wpgq87py4ax

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.19
SQL> @tests/output
declare
*
ERROR at line 1:
ORA-20000: disabled
ORA-06512: at line 17


Elapsed: 00:00:03.13
SQL> @tests/output
declare
*
ERROR at line 1:
ORA-20000: disabled
ORA-06512: at line 17


Elapsed: 00:00:00.29
SQL> @plans/flush_sql.sql
Enter value for sql_id: c8wpgq87py4ax

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.14
SQL> @tests/output
declare
*
ERROR at line 1:
ORA-20000: disabled
ORA-06512: at line 17


Elapsed: 00:00:03.17

...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641350
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderElicТебе показалось.отнюдь... я прекрасно знаю где, когда и куда это время уходит Не знаю, от чего тебе смешно, но я тебе соболезную:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
*
ERROR at line 1:
ORA-20000: disabled
ORA-06512: at line 17


Elapsed: 00:00:00.00

Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641363
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Elic,

И это у тебя точно не повторное выполнение?
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641412
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderИ это у тебя точно не повторное выполнение?Да.
И не может парсинг быть таким долгим.
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641485
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ElicИ не может парсинг быть таким долгим.
Код: 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.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    SID, USERNAME  , TYPE, STATISTIC                                                 ,         DELTA, HDELTA/SEC,    %TIME, GRAPH       , NUM_WAITS,  WAITS/SEC,   AVERAGES
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    147, XTENDER   , STAT, recursive cpu usage                                       ,           309,      61.55,         ,             ,          ,           ,        309 per execution
    147, XTENDER   , STAT, CPU used by this session                                  ,           311,      61.95,         ,             ,          ,           ,        311 per execution
    147, XTENDER   , STAT, DB time                                                   ,           310,      61.75,         ,             ,          ,           ,        310 per execution
    147, XTENDER   , STAT, non-idle wait count                                       ,             1,         .2,         ,             ,          ,           ,          1 per execution
    147, XTENDER   , STAT, process last non-idle time                                ,             3,         .6,         ,             ,          ,           ,          3 per execution
    147, XTENDER   , STAT, session uga memory                                        ,         65520,     13.05k,         ,             ,          ,           ,     65.52k per execution
    147, XTENDER   , STAT, enqueue releases                                          ,             1,         .2,         ,             ,          ,           ,          1 per execution
    147, XTENDER   , STAT, calls to kcmgcs                                           ,             1,         .2,         ,             ,          ,           ,          1 per execution
    147, XTENDER   , STAT, cursor authentications                                    ,             1,         .2,         ,             ,          ,           ,          1 per execution
    147, XTENDER   , STAT, parse time cpu                                            ,           309,      61.55,         ,             ,          ,           ,        309 per execution
    147, XTENDER   , STAT, parse time elapsed                                        ,           309,      61.55,         ,             ,          ,           ,        309 per execution
    147, XTENDER   , STAT, parse count (total)                                       ,             1,         .2,         ,             ,          ,           ,          ~ softparses per hardparse
    147, XTENDER   , STAT, execute count                                             ,             1,         .2,         ,             ,          ,           ,          1 executions per parse
    147, XTENDER   , STAT, bytes sent via SQL*Net to client                          ,           179,      35.66,         ,             ,          ,           ,        179 bytes per roundtrip
    147, XTENDER   , STAT, SQL*Net roundtrips to/from client                         ,             1,         .2,         ,             ,          ,           ,          1 per execution
    147, XTENDER   , TIME, hard parse elapsed time                                   ,       3090183,   615.57ms,    61.6%, [#######   ],          ,           ,
    147, XTENDER   , TIME, PL/SQL compilation elapsed time                           ,       3088855,   615.31ms,    61.5%, [#######   ],          ,           ,
    147, XTENDER   , TIME, parse time elapsed                                        ,       3091198,   615.78ms,    61.6%, [#######   ],          ,           ,
    147, XTENDER   , TIME, PL/SQL execution elapsed time                             ,           196,    39.04us,      .0%, [          ],          ,           ,
    147, XTENDER   , TIME, DB CPU                                                    ,       3104419,   618.41ms,    61.8%, [@@@@@@@   ],          ,           ,
    147, XTENDER   , TIME, sql execute elapsed time                                  ,           244,    48.61us,      .0%, [          ],          ,           ,
    147, XTENDER   , TIME, DB time                                                   ,       3091549,   615.85ms,    61.6%, [#######   ],          ,           ,     -41.27 % unaccounted time

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
PARSING IN CURSOR #475938304 len=497 dep=0 uid=103 oct=47 lid=103 tim=855023417688 hv=257888605 ad='7ff0e58fb68' sqlid='c8wpgq87py4ax'
declare
   function is_output_enabled return boolean deterministic is
      str_long constant varchar(32767):=rpad('x',32767);
   begin
      dbms_output.new_line;
      dbms_output.put(str_long);
      dbms_output.put(str_long);
      return false;
   exception
      when others then
         return true;
   end;
begin
   dbms_output.put_line('old data');
   if is_output_enabled
      then dbms_output.put_line('enabled');
      else raise_application_error(-20000,'disabled');
   end if;
end;
END OF STMT
PARSE #475938304:c=3104420,e=3103857,p=0,cr=87,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=855023417687


так на 12.2.0.1 и на экзадате и на винде, а у тебя на чем? никакие параметры не повыкручивали?
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641502
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderтак на 12.2.0.1 и на экзадате и на винде, а у тебя на чем? никакие параметры не повыкручивали?Винда, абсолютно дефолтная установка, пустая схема с DBA.
А вот на винде+UTF8+MaxString воспроизводится:
Код: plsql
1.
Elapsed: 00:00:02.51

Расплата за MaxString?
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641503
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ElicРасплата за MaxString?нет, у меня нигде extended strings не включены, но везде utf8
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641509
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
fixed
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
declare
   function is_output_enabled return boolean deterministic is
      str_long constant char(32767):='1';
   begin
      dbms_output.new_line;
      dbms_output.put(str_long);
      dbms_output.put(str_long);
      return false;
   exception 
      when others then 
         return true; 
   end;
begin
   dbms_output.put_line('old data');
   if is_output_enabled 
      then dbms_output.put_line('enabled');
      else raise_application_error(-20000,'disabled');
   end if;
end;
/


...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641511
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
в общем это из-за функции в инициализации
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641537
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
declare 
  x int:=1;
  ts timestamp;
  str varchar2(32767);
begin
   while x<33000 loop
      ts:=systimestamp;
      str:='
create or replace procedure p as
  s varchar2(32767):=rpad(''x'','||(x-1)||');
begin 
   dbms_output.put_line(s);
end;
';
      execute immediate str;
      dbms_output.put_line(to_char(x,'00000')||': '||(systimestamp-ts));
      x:=x+1000;
   end loop;
end;
/

Код: 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.
 00001: +000000000 00:00:00.020000000
 01001: +000000000 00:00:00.020000000
 02001: +000000000 00:00:00.030000000
 03001: +000000000 00:00:00.040000000
 04001: +000000000 00:00:00.070000000
 05001: +000000000 00:00:00.090000000
 06001: +000000000 00:00:00.120000000
 07001: +000000000 00:00:00.160000000
 08001: +000000000 00:00:00.210000000
 09001: +000000000 00:00:00.250000000
 10001: +000000000 00:00:00.310000000
 11001: +000000000 00:00:00.369000000
 12001: +000000000 00:00:00.441000000
 13001: +000000000 00:00:00.500000000
 14001: +000000000 00:00:00.580000000
 15001: +000000000 00:00:00.670000000
 16001: +000000000 00:00:00.762000000
 17001: +000000000 00:00:00.857000000
 18001: +000000000 00:00:00.958000000
 19001: +000000000 00:00:01.063000000
 20001: +000000000 00:00:01.201000000
 21001: +000000000 00:00:01.290000000
 22001: +000000000 00:00:01.500000000
 23001: +000000000 00:00:01.556000000
 24001: +000000000 00:00:01.678000000
 25001: +000000000 00:00:01.825000000
 26001: +000000000 00:00:01.962000000
 27001: +000000000 00:00:02.118000000
 28001: +000000000 00:00:02.282000000
 29001: +000000000 00:00:02.477000000
 30001: +000000000 00:00:02.653000000
 31001: +000000000 00:00:02.817000000
 32001: +000000000 00:00:03.006000000

...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641551
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender
Код: plsql
1.
2.
 31001: +000000000 00:00:02.817000000
 32001: +000000000 00:00:03.006000000

Код: plsql
1.
alter session set plsql_optimize_level=0;
...
Рейтинг: 0 / 0
DBMS_OUTPUT.GET_STATUS ?
    #39641583
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Elic,

это очевидно, и в данном случае уж лучше char(), а в более общем - еще неизвестно, что будет эффективнее
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBMS_OUTPUT.GET_STATUS ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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