powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-06502
65 сообщений из 65, показаны все 3 страниц
ORA-06502
    #40134814
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день коллеги. Долблюсь уже несколько дней, видимо глаза совсем замылились, не пойму в чем причина.
Дано
Код: plsql
1.
select value from NLS_DATABASE_PARAMETERS where parameter in ('NLS_RDBMS_VERSION', >'NLS_CHARACTERSET',  'NLS_LENGTH_SEMANTICS' )<


19.0.0.0.0
BYTE
AL32UTF8

Создаю минимально необходимое.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
/
create type gpu_type_numbers AS TABLE OF NUMBER(12)
/

create type gpu_type_varchar2_tab as table of VARCHAR2(4000) 
/
create table gpu_ident2(ITEM_SHIP_ID number(12,0) not null, layout_short CLOB)
/
insert into gpu_ident2(ITEM_SHIP_ID,layout_short)
values(44413615,
'Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00. ISOLATION BOARD JEBC-61701, Qty in VFD 1EA, Price book PN 100-064-429,  USD$2070.90, Qty in KIT 1EA, USD$2070.90. POWER SUPPLY 200V +5/+-15VDC PMC30E-2-C, Qty in VFD  1EA, Price book PN 300-034-594,  USD$399.60, Qty in KIT  1EA,  USD$399.60. POWER SUPPLY 200V 24V PBA50F-24-C, Qty in VFD 1EA, Price book PN 300-034-595, USD$365.85, Qty in KIT 1EA,  USD$365.85. OPERATOR, JVOP-180 MV2, LCD, CE PRG 0102, Qty in VFD 1EA, Price book PN 100-092-072,  USD$260.55, Qty in KIT 1EA,  USD$260.55. Unit prices above reflect individual purchases.')
/
commit
/
select dbms_lob.getlength(LAYOUT_SHORT) from gpu_ident2;


1521

Теперь пакет
Код: 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.
create package GPU_PCK2 as
TYPE gpu_ref_cursor  IS REF CURSOR;
function ident_desc2(p_ident  IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2;
function hmm_1(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor;
end GPU_PCK2;
/
create or replace package body GPU_PCK2 as
function ident_desc2(p_ident  IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2
is
  return_desc VARCHAR2(4000);
  v_tmp       VARCHAR2(3000);
  v_layout_short    gpu_ident2.layout_short%TYPE;
  CURSOR ccl IS SELECT layout_short FROM gpu_ident2 ;
begin
    OPEN ccl;
    FETCH ccl INTO v_layout_short;
    CLOSE ccl;
    v_tmp := dbms_lob.substr(v_layout_short, 3000,1);
    return_desc  := v_tmp;
    return return_desc;
end ident_desc2;
function hmm_1(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor
is
    v_cur gpu_ref_cursor;
begin
    open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||    
    'TABLE(CAST(:1 AS gpu_type_numbers)) ish_ids' || 
    ' where ish.item_ship_id = ish_ids.COLUMN_VALUE'
    USING p_item_ship_ids;    
    return v_cur;
end hmm_1;
end GPU_PCK2;
/


И вью
Код: plsql
1.
2.
3.
4.
create or replace view GPU_ISH_EXPED_5("ITEM_SHIP_ID", "IDENT_SHORT_DESC") AS 
  SELECT item_ship_id,
           GPU_PCK2.ident_desc2(1, 1) IDENT_SHORT_DESC
           from gpu_ident2/



проверяю нлс:
Код: plsql
1.
2.
3.
4.
SELECT C.name, c.nls_length_semantics
FROM DBA_PLSQL_OBJECT_SETTINGS C
WHERE  c.name in ('GPU_PCK2', upper('gpu_type_varchar2_tab'))
ORDER BY C.name


>GPU_PCK2 CHAR
>GPU_PCK2 CHAR
>GPU_TYPE_VARCHAR2_TAB CHAR

Ну и собственно тест
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
set serveroutput on;
declare
v_item_ship_id      gpu_ident2.item_ship_id%type;
v_IDENT_SHORT_DESC  GPU_ISH_EXPED_5.IDENT_SHORT_DESC%type;
l_cursor            GPU_PCK2.gpu_ref_cursor;
begin
  l_cursor := GPU_PCK2.hmm_1(gpu_type_varchar2_tab('ITEM_SHIP_ID', 'IDENT_SHORT_DESC'), gpu_type_numbers(44413615), 1);
  fetch l_cursor into v_item_ship_id, v_IDENT_SHORT_DESC;
  dbms_output.put_line(v_IDENT_SHORT_DESC);
  close l_cursor;
exception
when others then
  close l_cursor;
  raise;
end;
/
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
...
Рейтинг: 0 / 0
ORA-06502
    #40134823
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простыня

Если вопрос в превышении столбца VARCHAR2, не пора ли уже перейти на CLOB, если задача этого требует, и не трепыхаться на границе 4000 byte/char ?
...
Рейтинг: 0 / 0
ORA-06502
    #40134826
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
простыня


Если вопрос в превышении столбца VARCHAR2, не пора ли уже перейти на CLOB, если задача этого требует, и не трепыхаться на границе 4000 byte/char ?

Читаем внимательно
Код: plsql
1.
select dbms_lob.getlength(LAYOUT_SHORT) from gpu_ident2;


1521

1521 вроде как в 3000 char должны влезть, или?
...
Рейтинг: 0 / 0
ORA-06502
    #40134832
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаем внимательно

Я прочитал по диагонали. Если хотите, чтобы подробно тестировал вашу простыню, можно перейти в форум "Работа".

А вы прочитали внимательно?

не пора ли уже перейти на CLOB
...
Рейтинг: 0 / 0
ORA-06502
    #40134838
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, чтобы уважить форум, сделайте length/lengthb в сомнительном месте.
...
Рейтинг: 0 / 0
ORA-06502
    #40134840
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
Читаем внимательно


Я прочитал по диагонали. Если хотите, чтобы подробно тестировал вашу простыню, можно перейти в форум "Работа".

А вы прочитали внимательно?

не пора ли уже перейти на CLOB
Типичный вопрос джуна принятого на работы с монстроидальным легаси.
...
Рейтинг: 0 / 0
ORA-06502
    #40134846
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дорогой неждун/неждун, вы способны предоставить test case?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare
   v varchar2(4000) := rpad('1', 3999, '1');
 begin
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
   v:= v || '1';
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
   v:= v || '1';
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
   v:= v || '1';
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
 end;
...
Рейтинг: 0 / 0
ORA-06502
    #40134847
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
Дорогой неждун/неждун, вы способны предоставить test case?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare
   v varchar2(4000) := rpad('1', 3999, '1');
 begin
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
   v:= v || '1';
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
   v:= v || '1';
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
   v:= v || '1';
   dbms_output.put_line('length: '||length(v)||', lengthb: '||lengthb(v));
 end;


есци вы тонко намекаете на мултибайт, то его там нет
Код: plsql
1.
2.
select length(v), lengthb(v) from (
select GPU_PCK2.ident_desc2(1,1) v from dual);


1521, 1521
...
Рейтинг: 0 / 0
ORA-06502
    #40134848
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu,
да и в качестве офтопа

gpu: У меня проблема с ладой калиной, вот ее описание
ответ> не пора пересесть на мерседес?
...
Рейтинг: 0 / 0
ORA-06502
    #40134854
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
gpu,
да и в качестве офтопа

gpu: У меня проблема с ладой калиной, вот ее описание
ответ> не пора пересесть на мерседес?

проблема не возникает если удалить аргумент p_proj_id из ident_desc2.
или получать значение IDENT_SHORT_DESC не через вью а в селекте т.е.>
[src]
open v_cur for 'select ish.item_ship_id, gpu_pck2.ident_desc2(1,1) IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish'
[SRC PLSQL]
Хочеться понять что за хрень
...
Рейтинг: 0 / 0
ORA-06502
    #40134860
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gpu
gpu
gpu,
да и в качестве офтопа

gpu: У меня проблема с ладой калиной, вот ее описание
ответ> не пора пересесть на мерседес?

проблема не возникает если удалить аргумент p_proj_id из ident_desc2.
или получать значение IDENT_SHORT_DESC не через вью а в селекте т.е.>
Код: plsql
1.
 open v_cur for  'select ish.item_ship_id, gpu_pck2.ident_desc2(1,1) IDENT_SHORT_DESC  from GPU_ISH_EXPED_5 ish' 



Хочеться понять что за хрень

Мысли вслух...
Или если убрать default null для p_proj, а view строить на GPU_PCK2.ident_desc2(1, 1, null)...
...
Рейтинг: 0 / 0
ORA-06502
    #40134861
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
Код: plsql
1.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Чудак, у ошибки всегда есть стэк. Удали секцию exception. И узнаешь где.
...
Рейтинг: 0 / 0
ORA-06502
    #40134869
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus
gpu
пропущено...

проблема не возникает если удалить аргумент p_proj_id из ident_desc2.
или получать значение IDENT_SHORT_DESC не через вью а в селекте т.е.>
Код: plsql
1.
 open v_cur for  'select ish.item_ship_id, gpu_pck2.ident_desc2(1,1) IDENT_SHORT_DESC  from GPU_ISH_EXPED_5 ish' 



Хочеться понять что за хрень

Мысли вслух...
Или если убрать default null для p_proj, а view строить на GPU_PCK2.ident_desc2(1, 1, null)...

Не помогает
Код: 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.
function hmm_2(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor
is
    v_cur gpu_ref_cursor;
begin
    open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_7 ish,' ||    
    'TABLE(CAST(:1 AS gpu_type_numbers)) ish_ids' || 
    ' where ish.item_ship_id = ish_ids.COLUMN_VALUE'
    USING p_item_ship_ids;    
    return v_cur;
end hmm_2;

create or replace view GPU_ISH_EXPED_7("ITEM_SHIP_ID", "IDENT_SHORT_DESC") AS 
  SELECT item_ship_id,
           GPU_PCK2.ident_desc2(1, 1, null) IDENT_SHORT_DESC
           from gpu_ident2;

SQL> declare
  2  v_item_ship_id      gpu_ident2.item_ship_id%type;
  3  v_IDENT_SHORT_DESC  GPU_ISH_EXPED_7.IDENT_SHORT_DESC%type;
  4  l_cursor            GPU_PCK2.gpu_ref_cursor;
  5  begin
  6    l_cursor := GPU_PCK2.hmm_2(gpu_type_varchar2_tab('ITEM_SHIP_ID', 'IDENT_SHORT_DESC'), gpu_type_numbers(44413615), 1);
  7    fetch l_cursor into v_item_ship_id, v_IDENT_SHORT_DESC;
  8    dbms_output.put_line(v_IDENT_SHORT_DESC);
  9    close l_cursor;
 10  exception
 11  when others then
 12    close l_cursor;
 13    raise;
 14  end;
 15  /
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 13
ORA-06512: at line 1
ORA-06512: at line 7
...
Рейтинг: 0 / 0
ORA-06502
    #40134870
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
gpu
Код: plsql
1.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Чудак, у ошибки всегда есть стэк. Удали секцию exception. И узнаешь где.

в данном случае ето ничего не дает> оно на фетче смотри выше
...
Рейтинг: 0 / 0
ORA-06502
    #40134873
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gpu
Asmodeus
пропущено...

Мысли вслух...
Или если убрать default null для p_proj, а view строить на GPU_PCK2.ident_desc2(1, 1, null)...

Не помогает
Я имел ввиду:
Код: 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.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
create or replace package GPU_PCK2
as
    type gpu_ref_cursor is ref cursor;

    function ident_desc2 (p_ident     in NUMBER,
                          p_nls_id    in NUMBER,
                          p_proj_id   in VARCHAR2)
        return VARCHAR2;

    function hmm_1 (p_col_list        in gpu_type_varchar2_tab,
                    p_item_ship_ids   in gpu_type_numbers,
                    p_nls_id          in NUMBER)
        return gpu_ref_cursor;
end GPU_PCK2;
/

create or replace package body GPU_PCK2
as
    function ident_desc2 (p_ident     in NUMBER,
                          p_nls_id    in NUMBER,
                          p_proj_id   in VARCHAR2)
        return VARCHAR2
    is
        return_desc      VARCHAR2 (4000);
        v_tmp            VARCHAR2 (3000);
        v_layout_short   gpu_ident2.layout_short%type;

        cursor ccl is select layout_short from gpu_ident2;
    begin
        open ccl;

        fetch ccl into v_layout_short;

        close ccl;

        v_tmp := DBMS_LOB.SUBSTR (v_layout_short, 3000, 1);
        return_desc := v_tmp;
        return return_desc;
    end ident_desc2;

    function hmm_1 (p_col_list        in gpu_type_varchar2_tab,
                    p_item_ship_ids   in gpu_type_numbers,
                    p_nls_id          in NUMBER)
        return gpu_ref_cursor
    is
        v_cur   gpu_ref_cursor;
    begin
        open v_cur for
               'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,'
            || 'TABLE(CAST(:1 AS gpu_type_numbers)) ish_ids'
            || ' where ish.item_ship_id = ish_ids.COLUMN_VALUE'
            using p_item_ship_ids;

        return v_cur;
    end hmm_1;
END GPU_PCK2;
/

create or replace view GPU_ISH_EXPED_5("ITEM_SHIP_ID", "IDENT_SHORT_DESC") as 
  select item_ship_id,
           GPU_PCK2.ident_desc2(1, 1, null) IDENT_SHORT_DESC
           from gpu_ident2
/

declare
    v_item_ship_id       gpu_ident2.item_ship_id%type;
    v_IDENT_SHORT_DESC   GPU_ISH_EXPED_5.IDENT_SHORT_DESC%type;
    l_cursor             GPU_PCK2.gpu_ref_cursor;
begin
    l_cursor :=
        GPU_PCK2.hmm_1 (
            gpu_type_varchar2_tab ('ITEM_SHIP_ID', 'IDENT_SHORT_DESC'),
            gpu_type_numbers (44413615),
            1);


    fetch l_cursor into v_item_ship_id, v_IDENT_SHORT_DESC;

    DBMS_OUTPUT.put_line (v_IDENT_SHORT_DESC);

    close l_cursor;
exception
    when OTHERS
    then
        close l_cursor;

        raise;
end;
/

Time Start: 17/02/2022 16:01:23
Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00. ISOLATION BOARD JEBC-61701, Qty in VFD 1EA, Price book PN 100-064-429,  USD$2070.90, Qty in KIT 1EA, USD$2070.90. POWER SUPPLY 200V +5/+-15VDC PMC30E-2-C, Qty in VFD  1EA, Price book PN 300-034-594,  USD$399.60, Qty in KIT  1EA,  USD$399.60. POWER SUPPLY 200V 24V PBA50F-24-C, Qty in VFD 1EA, Price book PN 300-034-595, USD$365.85, Qty in KIT 1EA,  USD$365.85. OPERATOR, JVOP-180 MV2, LCD, CE PRG 0102, Qty in VFD 1EA, Price book PN 100-092-072,  USD$260.55, Qty in KIT 1EA,  USD$260.55. Unit prices above reflect individual purchases.
 PL/SQL procedure successfully completed.
Time End: 17/02/2022 16:01:24
Elapsed Time for Script Execution: 516 msecs

...
Рейтинг: 0 / 0
ORA-06502
    #40134875
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
Elic
пропущено...
Чудак, у ошибки всегда есть стэк. Удали секцию exception. И узнаешь где.

в данном случае ето ничего не дает> оно на фетче смотри выше

Уважаемые коллеги, я знаю 1000 и 1 способ как сделать так что бы етого не происходило,
но ето не на шаг не приближает меня к пониманию а что тут происходит?
...
Рейтинг: 0 / 0
ORA-06502
    #40134877
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus,

Интересно, a оригинальный вариант, выдает у вас ошибку? если нет значит cut and paste не совсем верно передали инсерт
...
Рейтинг: 0 / 0
ORA-06502
    #40134878
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gpu
Asmodeus,

Интересно, a оригинальный вариант, выдает у вас ошибку? если нет значит cut and paste не совсем верно передали инсерт
Оригинальный так же валится на фетче.
...
Рейтинг: 0 / 0
ORA-06502
    #40134880
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
gpu
пропущено...

в данном случае ето ничего не дает> оно на фетче смотри выше

Уважаемые коллеги, я знаю 1000 и 1 способ как сделать так что бы етого не происходило,
но ето не на шаг не приближает меня к пониманию а что тут происходит?

ваш ответ, почти наверно, лежит в районе desc ваша_вьюха

Вы же верите в v_IDENT_SHORT_DESC GPU_ISH_EXPED_5.IDENT_SHORT_DESC%type;
Ну, и какой он, цветочек аленький, исходя из desc GPU_ISH_EXPED_5?
...
Рейтинг: 0 / 0
ORA-06502
    #40134882
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus
gpu
Asmodeus,

Интересно, a оригинальный вариант, выдает у вас ошибку? если нет значит cut and paste не совсем верно передали инсерт
Оригинальный так же валится на фетче.


кстати если сделать ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE сначала то оригинальный вариант тоже работает.
оригинальный вариант работает и с NLS_LENGTH_SEMANTICS=CHAR для всех других рекордс.
Ну и где логика?
Какая связь между view, refcursor, pl/sql с дефаултным параметром в view и конкретно данным IDENT_SHORT_DESC?
Я могу поменять курсор добавив вызов GPU_PCK2.ident_desc2(1,1) as IDENT_SHORT_DESC
и все работает как часы.
...
Рейтинг: 0 / 0
ORA-06502
    #40134883
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
2 /

Session altered.

SQL> desc GPU_ISH_EXPED_5;
Name Null? Type
----------------------------------------- -------- ----------------------------
ITEM_SHIP_ID NOT NULL NUMBER(12)
IDENT_SHORT_DESC VARCHAR2(4000)
Код: plsql
1.
2.
3.
4.
5.
6.
>ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
>desc  GPU_ISH_EXPED_5;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ITEM_SHIP_ID                              NOT NULL NUMBER(12)
 IDENT_SHORT_DESC                                   VARCHAR2(4000)
...
Рейтинг: 0 / 0
ORA-06502
    #40134884
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpuНу и где логика?

Там, где нужно подумать головой и найти место в котором затесалась байтовая
семантика.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ORA-06502
    #40134886
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

gpuНу и где логика?

Там, где нужно подумать головой и найти место в котором затесалась байтовая
семантика.

T.e. я пропускаю что то тривиальное? Тыкните носом
...
Рейтинг: 0 / 0
ORA-06502
    #40134887
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по твоим цитатам, ты не в курсе, что NLS_LENGTH_SEMANTICS работает только
на новосоздаваемые объекты и не меняет уже существующих.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ORA-06502
    #40134889
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
booby,

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
2 /

[/src]


Следует ли понимать, что когда вы свой пакет компилируете, именно эта семантика вами всегда гарантируется?
Что покажет desc при байтной семантике.
...
Рейтинг: 0 / 0
ORA-06502
    #40134891
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
gpu
booby,

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
2 /

[/src]


Следует ли понимать, что когда вы свой пакет компилируете, именно эта семантика вами всегда гарантируется?
Что покажет desc при байтной семантике.

точнее, когда создаете и представление и пакет при байтной семантике
...
Рейтинг: 0 / 0
ORA-06502
    #40134892
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
gpu
booby,

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
2 /

[/src]


Следует ли понимать, что когда вы свой пакет компилируете, именно эта семантика вами всегда гарантируется?
Что покажет desc при байтной семантике.

То что и должен>
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE;

Session altered.

SQL> desc  GPU_ISH_EXPED_5;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ITEM_SHIP_ID                              NOT NULL NUMBER(12)
 IDENT_SHORT_DESC                                   VARCHAR2(4000 CHAR)
...
Рейтинг: 0 / 0
ORA-06502
    #40134893
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Судя по твоим цитатам, ты не в курсе, что NLS_LENGTH_SEMANTICS работает только
на новосоздаваемые объекты и не меняет уже существующих.


Я в курсе,
предлагаю оставить NLS_LENGTH_SEMANTICS для сессии в покое , пусть остается CHAR
и вернуться к вопросу что за хрень происходить когда все и везде CHAR?
...
Рейтинг: 0 / 0
ORA-06502
    #40134894
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
booby
пропущено...


Следует ли понимать, что когда вы свой пакет компилируете, именно эта семантика вами всегда гарантируется?
Что покажет desc при байтной семантике.

точнее, когда создаете и представление и пакет при байтной семантике

В данном кейсе Я не создаю представление и пакет при байтной семантике. Все CHAR.
...
Рейтинг: 0 / 0
ORA-06502
    #40134896
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
Dimitry Sibiryakov

Судя по твоим цитатам, ты не в курсе, что NLS_LENGTH_SEMANTICS работает только
на новосоздаваемые объекты и не меняет уже существующих.


Я в курсе,
предлагаю оставить NLS_LENGTH_SEMANTICS для сессии в покое , пусть остается CHAR
и вернуться к вопросу что за хрень происходить когда все и везде CHAR?


почему вы решили, что вот это

Код: plsql
1.
2.
 return_desc VARCHAR2(4000);
  v_tmp       VARCHAR2(3000);



"всегда и везде char"?
Для приличия бы неплохо явно написать об этом: v_tmp VARCHAR2(3000 CHAR);
...
Рейтинг: 0 / 0
ORA-06502
    #40134897
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
gpu
пропущено...


Я в курсе,
предлагаю оставить NLS_LENGTH_SEMANTICS для сессии в покое , пусть остается CHAR
и вернуться к вопросу что за хрень происходить когда все и везде CHAR?


почему вы решили, что вот это

Код: plsql
1.
2.
 return_desc VARCHAR2(4000);
  v_tmp       VARCHAR2(3000);



"всегда и везде char"?
Для приличия бы неплохо явно написать об этом: v_tmp VARCHAR2(3000 CHAR);

Я такого не говорил.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
>alter package GPU_PCK2 compile NLS_LENGTH_SEMANTICS=CHAR;
SELECT C.name, C.type, c.NLS_LENGTH_SEMANTICS
FROM DBA_PLSQL_OBJECT_SETTINGS C
WHERE name in ('GPU_PCK2')
ORDER BY C.name;
GPU_PCK2	PACKAGE	CHAR
GPU_PCK2	PACKAGE BODY	CHAR


я возможно заблуждаюсь, но мне кажется что в таком случае ето будет скомпилировано в
Код: plsql
1.
2.
 return_desc VARCHAR2(4000 VARCHAR2);
  v_tmp       VARCHAR2(3000 VARCHAR2);


или нет?
...
Рейтинг: 0 / 0
ORA-06502
    #40134898
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gpu,


А что выдает
Код: plsql
1.
2.
select column_name, data_length, char_used from user_tab_columns
where table_name = 'GPU_ISH_EXPED_5';


после создания представления c NLS_LENGTH_SEMANTICS=char?
...
Рейтинг: 0 / 0
ORA-06502
    #40134899
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmodeus
gpu,


А что выдает
Код: plsql
1.
2.
select column_name, data_length, char_used from user_tab_columns
where table_name = 'GPU_ISH_EXPED_5';


после создания представления c NLS_LENGTH_SEMANTICS=char?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
QL> select column_name, data_length, char_used from user_tab_columns where table_name = 'GPU_ISH_EXPED_5';

COLUMN_NAME
                 DATA_LENGTH C
-------------------------------------------------------------------------------------------------------------------------------- ----------- -
ITEM_SHIP_ID
                          22
IDENT_SHORT_DESC
                        4000 C
...
Рейтинг: 0 / 0
ORA-06502
    #40134904
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu,

если из курсора убрать table, то у меня перестает слетать
я понимаю зачем table и что ето нарушает логику
но может Вас натолкнет на мысль, почему
причем не важно какой табле, напр sys.odcinumberlist и начинает слетать
Код: 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.
create or replace package body GPU_PCK2 as
function ident_desc2(p_ident  IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2
is
  return_desc VARCHAR2(4000);
  v_tmp       VARCHAR2(3000);
  v_layout_short    gpu_ident2.layout_short%TYPE;
  CURSOR ccl IS SELECT layout_short FROM gpu_ident2 ;
begin
    OPEN ccl;
    FETCH ccl INTO v_layout_short;
    CLOSE ccl;
    v_tmp := dbms_lob.substr(v_layout_short, 3000,1);
    return_desc  := v_tmp;
    return return_desc;
end ident_desc2;
function hmm_1(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor
is
    v_cur gpu_ref_cursor;
    v_tmp number(12);
begin
 /*
    open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||    
    'TABLE(CAST(:1 AS gpu_type_numbers)) ish_ids' || 
    ' where ish.item_ship_id = ish_ids.COLUMN_VALUE'
    USING p_item_ship_ids;    
*/    
   v_tmp:=p_item_ship_ids(1);
    open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||    
    '(select :1 COLUMN_VALUE from dual) ish_ids' || 
    ' where ish.item_ship_id = ish_ids.COLUMN_VALUE'
    USING v_tmp;    

      return v_cur;
end hmm_1;
end GPU_PCK2;
/




.....
stax
...
Рейтинг: 0 / 0
ORA-06502
    #40134905
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby

точнее, когда создаете и представление и пакет при байтной семантике


Да нет, тут похоже на баг в операторе 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
SQL> select value from nls_session_parameters where parameter = 'NLS_LENGTH_SEMANTICS';

VALUE
--------------------------------------------------------------------------------
BYTE

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
  2  /

Session altered.

SQL> create type gpu_type_numbers AS TABLE OF NUMBER(12)
  2  /

Type created.

SQL>
SQL> create type gpu_type_varchar2_tab as table of VARCHAR2(4000)
  2  /

Type created.

SQL> create table gpu_ident2(ITEM_SHIP_ID number(12,0) not null, layout_short CLOB)
  2  /

Table created.

SQL> insert into gpu_ident2(ITEM_SHIP_ID,layout_short)
  2  values(44413615,
  3  'Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
  4  POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
  5  FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
  6  FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
  7  CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00. ISOLATION BOARD JEBC-61701, Qty in VFD 1EA, Price book PN 100-064-429,  USD$2070.90, Qty in KIT 1EA, USD$2070.90. POWER SUPPLY 200V +5/+-15VDC PMC30E-2-C, Qty in VFD  1EA, Price book PN 300-034-594,  USD$399.60, Qty in KIT  1EA,  USD$399.60. POWER SUPPLY 200V 24V PBA50F-24-C, Qty in VFD 1EA, Price book PN 300-034-595, USD$365.85, Qty in KIT 1EA,  USD$365.85. OPERATOR, JVOP-180 MV2, LCD, CE PRG 0102, Qty in VFD 1EA, Price book PN 100-092-072,  USD$260.55, Qty in KIT 1EA,  USD$260.55. Unit prices above reflect individual purchases.')
  8  /

1 row created.

SQL> commit
  2  /

Commit complete.

SQL> create package GPU_PCK2 as
  2  TYPE gpu_ref_cursor  IS REF CURSOR;
  3  function ident_desc2(p_ident  IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2;
  4  function hmm_1(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor;
  5  end GPU_PCK2;
  6  /

Package created.

SQL> create or replace package body GPU_PCK2 as
  2  function ident_desc2(p_ident  IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2
  3  is
  4    return_desc VARCHAR2(4000);
  5    v_tmp       VARCHAR2(3000);
  6    v_layout_short    gpu_ident2.layout_short%TYPE;
  7    CURSOR ccl IS SELECT layout_short FROM gpu_ident2 ;
  8  begin
  9      OPEN ccl;
 10      FETCH ccl INTO v_layout_short;
 11      CLOSE ccl;
 12      v_tmp := dbms_lob.substr(v_layout_short, 3000,1);
 13      return_desc  := v_tmp;
 14      return return_desc;
 15  end ident_desc2;
 16  function hmm_1(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor
 17  is
 18      v_cur gpu_ref_cursor;
 19  begin
 20      open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||
 21      'TABLE(CAST(:1 AS gpu_type_numbers)) ish_ids' ||
 22      ' where ish.item_ship_id = ish_ids.COLUMN_VALUE'
 23      USING p_item_ship_ids;
 24      return v_cur;
 25  end hmm_1;
 26  end GPU_PCK2;
 27  /

Package body created.

SQL> create or replace view GPU_ISH_EXPED_5("ITEM_SHIP_ID", "IDENT_SHORT_DESC") AS
  2    SELECT item_ship_id,
  3             GPU_PCK2.ident_desc2(1, 1) IDENT_SHORT_DESC
  4             from gpu_ident2
  5  /

View created.

SQL>




Т.е. все создано с NLS_LENGTH_SEMANTICS=CHAR. Теперь:

Код: 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.
select  ish.item_ship_id,
        IDENT_SHORT_DESC
  from  GPU_ISH_EXPED_5 ish
  where ish.item_ship_id = 44413615
/

ITEM_SHIP_ID
------------
IDENT_SHORT_DESC
------------------------------------------------------------------------------------------------------------------------------------
    44413615
Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board
Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$
3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN
DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00.
ISOLATION BOARD JEBC-61701, Qty in VFD 1EA, Price book PN 100-064-429,  USD$2070.90, Qty in KIT 1EA, USD$2070.90. POWER SUPPLY 200V
+5/+-15VDC PMC30E-2-C, Qty in VFD  1EA, Price book PN 300-034-594,  USD$399.60, Qty in KIT  1EA,  USD$399.60. POWER SUPPLY 200V 24V
PBA50F-24-C, Qty in VFD 1EA, Price book PN 300-034-595, USD$365.85, Qty in KIT 1EA,  USD$365.85. OPERATOR, JVOP-180 MV2, LCD, CE PRG
 0102, Qty in VFD 1EA, Price book PN 100-092-072,  USD$260.55, Qty in KIT 1EA,  USD$260.55. Unit prices above reflect individual pur
chases.


SQL>



Банально добавляем совершенно не связанный TABLE:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select  ish.item_ship_id,
        IDENT_SHORT_DESC
  from  GPU_ISH_EXPED_5 ish,
        TABLE(SYS.ODCIDATELIST(SYSDATE))
  where ish.item_ship_id = 44413615
/
        IDENT_SHORT_DESC
      *
ERROR at line 2:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1


SQL>



Меняем в пакете

Код: plsql
1.
dbms_lob.substr(v_layout_short, 3000,1);



на

Код: plsql
1.
dbms_lob.substr(v_layout_short, 1000,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.
select  ish.item_ship_id,
        IDENT_SHORT_DESC
  from  GPU_ISH_EXPED_5 ish,
        TABLE(SYS.ODCIDATELIST(SYSDATE))
  where ish.item_ship_id = 44413615
/

ITEM_SHIP_ID
------------
IDENT_SHORT_DESC
------------------------------------------------------------------------------------------------------------------------------------
    44413615
Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board
Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$
3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN
DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00.
ISOLATION BOAR


SQL>



Меняем в пакете

Код: plsql
1.
dbms_lob.substr(v_layout_short, 1000,1);



на

Код: plsql
1.
dbms_lob.substr(v_layout_short, 1001,1);



и опять ORA-06502.

SY.
...
Рейтинг: 0 / 0
ORA-06502
    #40134912
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
booby
пропущено...


почему вы решили, что вот это

Код: plsql
1.
2.
 return_desc VARCHAR2(4000);
  v_tmp       VARCHAR2(3000);



"всегда и везде char"?
Для приличия бы неплохо явно написать об этом: v_tmp VARCHAR2(3000 CHAR);

Я такого не говорил.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
>alter package GPU_PCK2 compile NLS_LENGTH_SEMANTICS=CHAR;
SELECT C.name, C.type, c.NLS_LENGTH_SEMANTICS
FROM DBA_PLSQL_OBJECT_SETTINGS C
WHERE name in ('GPU_PCK2')
ORDER BY C.name;
GPU_PCK2	PACKAGE	CHAR
GPU_PCK2	PACKAGE BODY	CHAR


я возможно заблуждаюсь, но мне кажется что в таком случае ето будет скомпилировано в
Код: plsql
1.
2.
 return_desc VARCHAR2(4000 VARCHAR2);
  v_tmp       VARCHAR2(3000 VARCHAR2);


или нет?

или да, только что проверил
...
Рейтинг: 0 / 0
ORA-06502
    #40134914
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYтут похоже на баг в операторе TABLE

Когда снимаешь лимит в 4000 байт в такой большой системе, очень просто забыть
пару мест.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ORA-06502
    #40134915
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
booby

точнее, когда создаете и представление и пакет при байтной семантике


Да нет, тут похоже на баг в операторе 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
SQL> select value from nls_session_parameters where parameter = 'NLS_LENGTH_SEMANTICS';

VALUE
--------------------------------------------------------------------------------
BYTE

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
  2  /

Session altered.

SQL> create type gpu_type_numbers AS TABLE OF NUMBER(12)
  2  /

Type created.

SQL>
SQL> create type gpu_type_varchar2_tab as table of VARCHAR2(4000)
  2  /

Type created.

SQL> create table gpu_ident2(ITEM_SHIP_ID number(12,0) not null, layout_short CLOB)
  2  /

Table created.

SQL> insert into gpu_ident2(ITEM_SHIP_ID,layout_short)
  2  values(44413615,
  3  'Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
  4  POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
  5  FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
  6  FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
  7  CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00. ISOLATION BOARD JEBC-61701, Qty in VFD 1EA, Price book PN 100-064-429,  USD$2070.90, Qty in KIT 1EA, USD$2070.90. POWER SUPPLY 200V +5/+-15VDC PMC30E-2-C, Qty in VFD  1EA, Price book PN 300-034-594,  USD$399.60, Qty in KIT  1EA,  USD$399.60. POWER SUPPLY 200V 24V PBA50F-24-C, Qty in VFD 1EA, Price book PN 300-034-595, USD$365.85, Qty in KIT 1EA,  USD$365.85. OPERATOR, JVOP-180 MV2, LCD, CE PRG 0102, Qty in VFD 1EA, Price book PN 100-092-072,  USD$260.55, Qty in KIT 1EA,  USD$260.55. Unit prices above reflect individual purchases.')
  8  /

1 row created.

SQL> commit
  2  /

Commit complete.

SQL> create package GPU_PCK2 as
  2  TYPE gpu_ref_cursor  IS REF CURSOR;
  3  function ident_desc2(p_ident  IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2;
  4  function hmm_1(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor;
  5  end GPU_PCK2;
  6  /

Package created.

SQL> create or replace package body GPU_PCK2 as
  2  function ident_desc2(p_ident  IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2
  3  is
  4    return_desc VARCHAR2(4000);
  5    v_tmp       VARCHAR2(3000);
  6    v_layout_short    gpu_ident2.layout_short%TYPE;
  7    CURSOR ccl IS SELECT layout_short FROM gpu_ident2 ;
  8  begin
  9      OPEN ccl;
 10      FETCH ccl INTO v_layout_short;
 11      CLOSE ccl;
 12      v_tmp := dbms_lob.substr(v_layout_short, 3000,1);
 13      return_desc  := v_tmp;
 14      return return_desc;
 15  end ident_desc2;
 16  function hmm_1(p_col_list IN gpu_type_varchar2_tab, p_item_ship_ids IN gpu_type_numbers, p_nls_id IN number) return gpu_ref_cursor
 17  is
 18      v_cur gpu_ref_cursor;
 19  begin
 20      open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||
 21      'TABLE(CAST(:1 AS gpu_type_numbers)) ish_ids' ||
 22      ' where ish.item_ship_id = ish_ids.COLUMN_VALUE'
 23      USING p_item_ship_ids;
 24      return v_cur;
 25  end hmm_1;
 26  end GPU_PCK2;
 27  /

Package body created.

SQL> create or replace view GPU_ISH_EXPED_5("ITEM_SHIP_ID", "IDENT_SHORT_DESC") AS
  2    SELECT item_ship_id,
  3             GPU_PCK2.ident_desc2(1, 1) IDENT_SHORT_DESC
  4             from gpu_ident2
  5  /

View created.

SQL>




Т.е. все создано с NLS_LENGTH_SEMANTICS=CHAR. Теперь:

Код: 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.
select  ish.item_ship_id,
        IDENT_SHORT_DESC
  from  GPU_ISH_EXPED_5 ish
  where ish.item_ship_id = 44413615
/

ITEM_SHIP_ID
------------
IDENT_SHORT_DESC
------------------------------------------------------------------------------------------------------------------------------------
    44413615
Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board
Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$
3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN
DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00.
ISOLATION BOARD JEBC-61701, Qty in VFD 1EA, Price book PN 100-064-429,  USD$2070.90, Qty in KIT 1EA, USD$2070.90. POWER SUPPLY 200V
+5/+-15VDC PMC30E-2-C, Qty in VFD  1EA, Price book PN 300-034-594,  USD$399.60, Qty in KIT  1EA,  USD$399.60. POWER SUPPLY 200V 24V
PBA50F-24-C, Qty in VFD 1EA, Price book PN 300-034-595, USD$365.85, Qty in KIT 1EA,  USD$365.85. OPERATOR, JVOP-180 MV2, LCD, CE PRG
 0102, Qty in VFD 1EA, Price book PN 100-092-072,  USD$260.55, Qty in KIT 1EA,  USD$260.55. Unit prices above reflect individual pur
chases.


SQL>



Банально добавляем совершенно не связанный TABLE:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select  ish.item_ship_id,
        IDENT_SHORT_DESC
  from  GPU_ISH_EXPED_5 ish,
        TABLE(SYS.ODCIDATELIST(SYSDATE))
  where ish.item_ship_id = 44413615
/
        IDENT_SHORT_DESC
      *
ERROR at line 2:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1


SQL>



Меняем в пакете

Код: plsql
1.
dbms_lob.substr(v_layout_short, 3000,1);



на

Код: plsql
1.
dbms_lob.substr(v_layout_short, 1000,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.
select  ish.item_ship_id,
        IDENT_SHORT_DESC
  from  GPU_ISH_EXPED_5 ish,
        TABLE(SYS.ODCIDATELIST(SYSDATE))
  where ish.item_ship_id = 44413615
/

ITEM_SHIP_ID
------------
IDENT_SHORT_DESC
------------------------------------------------------------------------------------------------------------------------------------
    44413615
Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board
Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$
3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN
DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00.
ISOLATION BOAR


SQL>



Меняем в пакете

Код: plsql
1.
dbms_lob.substr(v_layout_short, 1000,1);



на

Код: plsql
1.
dbms_lob.substr(v_layout_short, 1001,1);



и опять ORA-06502.

SY.

Ну вот наконец то , да я знаю , что без таблицы работает, и ето волебное число 1001 я тоже подобрал, но также работает если убрать аргумент p_proj_id из функции ident_desc2 а таблицу оставить, или взять оставить как есть и взять другую запись с другим item_ship_id
Просо мистика какая то!
...
Рейтинг: 0 / 0
ORA-06502
    #40134916
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gpu,

Ну с NLS_LENGTH_SEMANTICS=CHAR и многобайтными кодировками есть ряд до сих пор не исправленных (и unpublished) багов на металинке. Вплоть до ORA-600.
...
Рейтинг: 0 / 0
ORA-06502
    #40134917
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY

Да нет, тут похоже на баг в операторе TABLE:
SY.


оно как-то в связке table и IDENT_SHORT_DESC слетает

Код: plsql
1.
2.
 open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||    
    'dual --TABLE(gpu_type_numbers(44413615)) ish_ids';



по отдельности и table и IDENT_SHORT_DESC работают

.....
stax
...
Рейтинг: 0 / 0
ORA-06502
    #40134918
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

SYтут похоже на баг в операторе TABLE

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

тзт нет забытих мест, приведенный кеис максимално близок к продакшену, ну разве что вью на 200 столбцов а не на два и в таблице миллионы записей а не одна
...
Рейтинг: 0 / 0
ORA-06502
    #40134920
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
SY

Да нет, тут похоже на баг в операторе TABLE:
SY.


оно как-то в связке table и IDENT_SHORT_DESC слетает

Код: plsql
1.
2.
 open v_cur for  'select ish.item_ship_id, IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||    
    'dual --TABLE(gpu_type_numbers(44413615)) ish_ids';



по отдельности и table и IDENT_SHORT_DESC работают

.....
stax

О чем и речь и вызов пакета напрямую тоже будет работать
Код: plsql
1.
2.
 open v_cur for  'select ish.item_ship_id, GPU_PCK2.ident_desc2(1,1) IDENT_SHORT_DESC from GPU_ISH_EXPED_5 ish,' ||    
    'dual --TABLE(gpu_type_numbers(44413615)) ish_ids';
...
Рейтинг: 0 / 0
ORA-06502
    #40134921
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

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


Код: plsql
1.
2.
3.
4.
5.
6.
SQL> show parameter max_string_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      STANDARD
SQL>



И похоже баг тянется с 12.2. В 12.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.
SQL> select  version
  2    from  v$instance
  3  /

VERSION
-----------------
12.1.0.2.0

SQL> select  ish.item_ship_id,
  2          IDENT_SHORT_DESC
  3    from  GPU_ISH_EXPED_5 ish,
  4          TABLE(SYS.ODCIDATELIST(SYSDATE))
  5    where ish.item_ship_id = 44413615
  6  /

ITEM_SHIP_ID
------------
IDENT_SHORT_DESC
------------------------------------------------------------------------------------------------------------------------------------
    44413615
Yaskawa VSD Spare Parts kit: Power Cell Control Board Isolation Board Relay Board Power Supplies 5/15Vdc and 24Vdc Fan Detect Board
Cooling Fan Air Filter (Small) as required Air Filter (Large) Digital Operator Three main fuses.
POWER CELL MV2 330A  3FUSE,  Qty in VFD 6EA, Price book PN UUX001104,  USD$45391.05,  Qty in KIT 1EA,  USD$45391.05.
FAN 200-277VAC 2.3A S3G400-KC22-51, Qty in VFD 6EA, Price book PN UUX001109,  USD$2835, Qty in KIT 1EA,  USD$2,835.00.
FILTER CASSETTE 398 x 898 FLGS31050-B, Qty in VFD 10EA, Price book PN UUX001111,  USD$1513.35, Qty in KIT 2EA,  USD$1513.35.
CONTROL BOARD JEBC-61304-INV 30400- S0100, Qty in VFD 1EA, Price book PN  100-064-008,  USD$3801.60, Qty included in KIT  1EA,  USD$
3801.60. RELAY BOARD 120V 7910161-91321, Qty in VFD 1EA, Price book PN 100-088-860,  USD$1800.90, Qty in KIT  1EA, USD$1800.90. FAN
DTECT BRD JEBC-61703-0 7910161-70300, Qty in VFD 1EA,  Price book PN 100-064-013,   USD$540, Qty included in KIT  1EA,  USD$540.00.
ISOLATION BOARD JEBC-61701, Qty in VFD 1EA, Price book PN 100-064-429,  USD$2070.90, Qty in KIT 1EA, USD$2070.90. POWER SUPPLY 200V
+5/+-15VDC PMC30E-2-C, Qty in VFD  1EA, Price book PN 300-034-594,  USD$399.60, Qty in KIT  1EA,  USD$399.60. POWER SUPPLY 200V 24V
PBA50F-24-C, Qty in VFD 1EA, Price book PN 300-034-595, USD$365.85, Qty in KIT 1EA,  USD$365.85. OPERATOR, JVOP-180 MV2, LCD, CE PRG
 0102, Qty in VFD 1EA, Price book PN 100-092-072,  USD$260.55, Qty in KIT 1EA,  USD$260.55. Unit prices above reflect individual pur
chases.


SQL>



SY.
...
Рейтинг: 0 / 0
ORA-06502
    #40134922
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,
Спасибо, побегу искать 12.1 может где и завалялось
...
Рейтинг: 0 / 0
ORA-06502
    #40134927
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
SY,
Спасибо, побегу искать 12.1 может где и завалялось

Sy что говорит
Код: plsql
1.
select value from NLS_DATABASE_PARAMETERS where parameter in ('NLS_RDBMS_VERSION', 'NLS_CHARACTERSET',  'NLS_LENGTH_SEMANTICS' )


на твоей 12.1?
...
Рейтинг: 0 / 0
ORA-06502
    #40134933
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно у меня на 12.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.
select  version from  v$instance
12.1.0.2.0
>select value from NLS_DATABASE_PARAMETERS where parameter in ('NLS_RDBMS_VERSION', 'NLS_CHARACTERSET',  'NLS_LENGTH_SEMANTICS' )
12.1.0.2.0
CHAR
AL32UTF8
>ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
/

> select  ish.item_ship_id,
IDENT_SHORT_DESC
from  GPU_ISH_EXPED_5 ish,
TABLE(SYS.ODCIDATELIST(SYSDATE))
where ish.item_ship_id = 44413615
/

Error starting at line : 22 in command -
 select  ish.item_ship_id,
IDENT_SHORT_DESC
from  GPU_ISH_EXPED_5 ish,
TABLE(SYS.ODCIDATELIST(SYSDATE))
where ish.item_ship_id = 44413615
Error report -
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
...
Рейтинг: 0 / 0
ORA-06502
    #40134935
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
странно у меня на 12.1 тоже неработает


Значит не работает с какого-то патча в 12.1.

SY.
...
Рейтинг: 0 / 0
ORA-06502
    #40134941
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

вообще нет ясности, точно тут Table виноват или нет.
(Может даже и Table, но косвенно, например, через притягивание компиляции объектных типов в запросе, и/или, может быть,
создание каких-то временных типов в базе.)
Вьюха может мержится при любой попытке джойна, фактически, с формированием новых описателей столбцов.
По хорошему, надо еще смотреть как dbms_sql опишет такой курсор.

Кроме того, я бы явный каст в месте вызова функции в представлении предложил попробовать.
...
Рейтинг: 0 / 0
ORA-06502
    #40134945
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

в DBA_REGISTRY_SQLPATCH пусто
и

exec sys.dbms_qopatch.get_sqlpatch_status;
то же ничего не дает.
возможно все таки неправильная нлс в базе.
бд с правильной пока не нашел
...
Рейтинг: 0 / 0
ORA-06502
    #40134958
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
SY,

в DBA_REGISTRY_SQLPATCH пусто
и

exec sys.dbms_qopatch.get_sqlpatch_status;
то же ничего не дает.
возможно все таки неправильная нлс в базе.
бд с правильной пока не нашел



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> connect / as sysdba
Connected.
SQL> SELECT PATCH_ID FROM DBA_REGISTRY_SQLPATCH;

no rows selected

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

c:\temp>%ORACLE_HOME%\opatch\opatch lspatches
28810679;WINDOWS DB BUNDLE PATCH 12.1.0.2.190115(64bit):28810679

c:\temp>



SY.
...
Рейтинг: 0 / 0
ORA-06502
    #40134961
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY

c:\temp>%ORACLE_HOME%\opatch\opatch lspatches
28810679;WINDOWS DB BUNDLE PATCH 12.1.0.2.190115(64bit):28810679

[/src]

SY.

Так ето разве не тоже самое что>
exec sys.dbms_qopatch.get_sqlpatch_status;
Ну до сервера я на етой неделе не доберусь, сисадмин не доступен.
...
Рейтинг: 0 / 0
ORA-06502
    #40135063
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu,

так как проблема почти локализована (table),
можно упростить пример для большей наглядности

.....
stax
...
Рейтинг: 0 / 0
ORA-06502
    #40135079
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Не совсем, у Asmodeus все работает если поменят- сигнатуру фукнции ident_desc2
было
function ident_desc2(p_ident IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2 default null) RETURN VARCHAR2;
стало
function ident_desc2(p_ident IN NUMBER,p_nls_id IN NUMBER, p_proj_id IN VARCHAR2) RETURN VARCHAR2;

В сухом остатке :
комбинация из обычных символов плюс вЬю плюс функция с аргументом по умолчанию плюс оператор тайбл
...
Рейтинг: 0 / 0
ORA-06502
    #40135091
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu

комбинация из обычных символов плюс вЬю плюс функция с аргументом по умолчанию плюс оператор тайбл

да комбитнация факторов (+NLS_LENGTH_SEMANTICS=CHAR),
но можно упростить пример, и люди с доступом к металинку cмогут открыть ...

ps
у меня счас нет доступа к 19-й версии, прогоняю на apex-е
и ето не совсем чистый тест

.....
stax
...
Рейтинг: 0 / 0
ORA-06502
    #40135096
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,
да я и сам могу открыть, просто тест кейс надо уменьшить , выкинуть то что не влияет, я пока вижу что функция хмм не нужна,
но хочется еще упростить.
Кстати, у кого нибудь завалялась 12.1 с кодировкой BYTE?
У нас все базы с кодировкой CHAR блин.
...
Рейтинг: 0 / 0
ORA-06502
    #40135101
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
Stax,
да я и сам могу открыть, просто тест кейс надо уменьшить , выкинуть то что не влияет, я пока вижу что функция хмм не нужна,
но хочется еще упростить.
Кстати, у кого нибудь завалялась 12.1 с кодировкой BYTE?
У нас все базы с кодировкой CHAR блин.


а зачем Вам с BYTE, проверить что нет ошибки?

на apex.oracle.com "база в BYTE"

и если закоментировать execute immediate 'ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR';
то ошибка уходит


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
v_item_ship_id      number(12); --gpu_ident2.item_ship_id%type;
v_IDENT_SHORT_DESC  varchar2(32000); --GPU_ISH_EXPED_5.IDENT_SHORT_DESC%type;
l_cursor            GPU_PCK2.gpu_ref_cursor;
begin
--execute immediate 'ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR';
  l_cursor := GPU_PCK2.hmm_1(gpu_type_varchar2_tab('ITEM_SHIP_ID', 'IDENT_SHORT_DESC'), gpu_type_numbers(4), 1);
  fetch l_cursor into v_item_ship_id, v_IDENT_SHORT_DESC;
  dbms_output.put_line(v_IDENT_SHORT_DESC);
  close l_cursor;
exception
when others then
  close l_cursor;
  raise;
end;



.....
stax
...
Рейтинг: 0 / 0
ORA-06502
    #40135108
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
...
Кстати, у кого нибудь завалялась 12.1 с кодировкой BYTE?
У нас все базы с кодировкой CHAR блин.


🙄
Креативно.



Note:

Oracle strongly recommends that you do NOT set the NLS_LENGTH_SEMANTICS parameter to CHAR in the instance or server parameter file. This may cause many existing installation scripts to unexpectedly create columns with character length semantics, resulting in run-time errors, including buffer overflows.
...
Рейтинг: 0 / 0
ORA-06502
    #40135111
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
gpu
...
Кстати, у кого нибудь завалялась 12.1 с кодировкой BYTE?
У нас все базы с кодировкой CHAR блин.


🙄
Креативно.



Note:

Oracle strongly recommends that you do NOT set the NLS_LENGTH_SEMANTICS parameter to CHAR in the instance or server parameter file. This may cause many existing installation scripts to unexpectedly create columns with character length semantics, resulting in run-time errors, including buffer overflows.

Поправляюсь все которые 12.1
...
Рейтинг: 0 / 0
ORA-06502
    #40135112
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,
Да знаю с НЛС BYTE все работает, но поставить BYTE для сессии равносильно самоубиться тремя выстрелами в голову>
130 тысяч только стандартных обьектов, плюс кастомизация
...
Рейтинг: 0 / 0
ORA-06502
    #40135123
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu,

имхо
проблема боле-менее локализована
подготовить пример попроще (чтоб слетало) и попробовать обратится к металинку

.....
stax
...
Рейтинг: 0 / 0
ORA-06502
    #40135664
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

SR 3-28682965761
...
Рейтинг: 0 / 0
ORA-06502
    #40135695
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только что прилетела от саппорта, да ето баг , вроде пофиксен в 19.12, инфы по 18.0 и 12.2 пока нет
...
Рейтинг: 0 / 0
ORA-06502
    #40135705
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gpu
только что прилетела от саппорта, да ето баг , вроде пофиксен в 19.12, инфы по 18.0 и 12.2 пока нет
Врут. У меня на 19.12 все воспроизводится (13 и 14 пока негде проверить). Ну и для 18 версии я бы не ждал, для нее Extended support даже не объявлялся, а Premier Support закончился в середине 2021 года.
...
Рейтинг: 0 / 0
ORA-06502
    #40135707
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpu
только что прилетела от саппорта, да ето баг , вроде пофиксен в 19.12, инфы по 18.0 и 12.2 пока нет


apex

BANNER_FULL
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production Version 19.13.0.0.0

.....
stax
...
Рейтинг: 0 / 0
ORA-06502
    #40135729
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже таки да, уже назад взяли, типа багов связанных с кейсом не найдено, передали команде по PL/SQL
...
Рейтинг: 0 / 1
Не нравится: GL2
65 сообщений из 65, показаны все 3 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-06502
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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