Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-06502 / 25 сообщений из 65, страница 1 из 3
17.02.2022, 14:01
    #40134814
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
Добрый день коллеги. Долблюсь уже несколько дней, видимо глаза совсем замылились, не пойму в чем причина.
Дано
Код: 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
17.02.2022, 14:35
    #40134823
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
простыня

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


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

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


1521

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

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

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

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


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

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

не пора ли уже перейти на CLOB
Типичный вопрос джуна принятого на работы с монстроидальным легаси.
...
Рейтинг: 0 / 0
17.02.2022, 15:00
    #40134846
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
Дорогой неждун/неждун, вы способны предоставить 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
17.02.2022, 15:06
    #40134847
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
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
17.02.2022, 15:10
    #40134848
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
gpu,
да и в качестве офтопа

gpu: У меня проблема с ладой калиной, вот ее описание
ответ> не пора пересесть на мерседес?
...
Рейтинг: 0 / 0
17.02.2022, 15:19
    #40134854
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
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
17.02.2022, 15:36
    #40134860
Asmodeus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
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
17.02.2022, 15:37
    #40134861
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
gpu
Код: plsql
1.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Чудак, у ошибки всегда есть стэк. Удали секцию exception. И узнаешь где.
...
Рейтинг: 0 / 0
17.02.2022, 15:51
    #40134869
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
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
17.02.2022, 15:52
    #40134870
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
Elic
gpu
Код: plsql
1.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small

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

в данном случае ето ничего не дает> оно на фетче смотри выше
...
Рейтинг: 0 / 0
17.02.2022, 16:04
    #40134873
Asmodeus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
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
17.02.2022, 16:05
    #40134875
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
gpu
Elic
пропущено...
Чудак, у ошибки всегда есть стэк. Удали секцию exception. И узнаешь где.

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

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

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

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

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

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

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

Вы же верите в v_IDENT_SHORT_DESC GPU_ISH_EXPED_5.IDENT_SHORT_DESC%type;
Ну, и какой он, цветочек аленький, исходя из desc GPU_ISH_EXPED_5?
...
Рейтинг: 0 / 0
17.02.2022, 16:18
    #40134882
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
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
17.02.2022, 16:20
    #40134883
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
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
17.02.2022, 16:22
    #40134884
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-06502
gpuНу и где логика?

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

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

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

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

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR
2 /

[/src]


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


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