Link to home
Start Free TrialLog in
Avatar of hernst42
hernst42Flag for Germany

asked on

Select with ORA-01401: inserted value too large for column Offset

Hi,
I get the following error on a oracle 11g database.

ORA-01401: inserted value too large for column Offset: 223

The used SQL is:
select distinct v0."LK" as "Lkey", TO_NUMBER(v2."Value") AS "Value" from b0 v0 inner join b0v v1 on (v1."Field"=100535 and v1."FK_LK"=v0."PK") left outer join b0v v2 on (v2."Field"=100464 and v2."FK_LK"=v0."PK") inner join ACLEntry acl5376 on (acl5376."FK_ACL"=v0."FK_ACL") WHERE ((((v1."Value"<>'notis manu torulos Caesar illustri donet vati veterum cudimus pueros Chonrade torulos pignus tacitis Chonrade viros Haec valeat pignus tessera Artificum pueros vati nomismata veterum notis cudimus scribere nos quisque Artificum dabo pignus donet valeat horis valeat manu iuglans Ipse ut pignus nos facta Et chartula scribere eximias Et valeat dabo iuglans scribere nomismata Et cudimus cudimus Dum chartacea Et quisque picta signaque tacitis mei vates vati figere Emblemata vates cudimus nomismata chartacea valeat iuvenes facta Caesar tibi fallit ut chartula mei petasis veterum tibi segnes pueros Quae segnes munera torulos eximias iuvenes manus horis Dum Caesar segnes figere pignus iuglans habere supremus vates horis Et Emblemata Dum illustri manu ut parmas illustri chartacea Haec pignus pueros festivis munera picta Detinet Artificum Chonrade chartula Detinet nos chartula Ipse manu supremus habere torulos torulos torulos Artificum veterum et notis eximias ut amoris chartula amoris horis pueros viros Emblemata iuvenes petasis segnes nos scribere figere chartula veterum notis Vestibus Quae ut manus scribere picta Haec habe At tacitis veterum' or v1."Value" is null)))) and ((acl5376."FK_Benutzer"=1 or acl5376."FK_Gruppe" IN (9 , 6 , 4 , 1 , 2 , 3 , 13 , 14)) and acl5376."Type"='r') and v0."histtop"='Y'  ORDER BY TO_NUMBER(v2."Value"), v0."LK" desc


The table description is:
SQL> describe b0v;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PK                                        NOT NULL NUMBER
 FK_LK                                     NOT NULL NUMBER
 Field                                     NOT NULL NUMBER
 Value                                              NVARCHAR2(2000)

SQL> describe ACLEntry
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PK                                        NOT NULL NUMBER
 FK_ACL                                    NOT NULL NUMBER
 FK_Gruppe                                          NUMBER
 FK_Benutzer                                        NUMBER
 Type                                               NCHAR(1)

SQL> describe b0;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PK                                        NOT NULL NUMBER
 LK                                        NOT NULL NUMBER
 kzStatus                                  NOT NULL NCHAR(1)
 histtop                                   NOT NULL NCHAR(1)
 FirstEditor                               NOT NULL NUMBER
 FirstEditTime                             NOT NULL NUMBER
 Editor                                    NOT NULL NUMBER
 EditTime                                  NOT NULL NUMBER
 FK_ACL                                    NOT NULL NUMBER
 Deputy                                             NUMBER
 b0Type                                             NUMBER
 o1                                                 NUMBER
 o2                                                 NUMBER
 dt0v_alphanum_dm                                   NVARCHAR2(254)
 dt0v_num_dm                                        FLOAT(126)
 dt0v_datetime_dm                                   NUMBER
 dt0v_sselection_dm                                 NUMBER
 dt0v_urllink_dm                                    NVARCHAR2(254)
 dt0v_user_dm                                       NUMBER
 dt0v_date_dm                                       NUMBER
 dt0v_hlist_dm                                      NVARCHAR2(254)
 dt0v_extsel_dm                                     NUMBER
 dt0v_radio_dm                                      NUMBER
 dt0v_checkbox_dm                                   NVARCHAR2(254)
 dt0v_popup_dm                                      NVARCHAR2(254)
 dt0v_scrollwin_dm                                  NVARCHAR2(254)
 dt0v_picture_dm                                    NVARCHAR2(254)
 dt0v_file_dm                                       NVARCHAR2(254)
 dt0v_group_dm                                      NUMBER
 Multifile                                          BLOB
 dt0v_adminsel_dm                                   NUMBER
 dt38                                               FLOAT(126)
 dt38_r                                             FLOAT(126)
 dt38_c                                             NVARCHAR2(3)
 dt0v_alphanum_ms_1                                 NVARCHAR2(254)
 dt0v_alphanum_ms_2                                 NVARCHAR2(254)

Anyone knows why this error occurs? The comapred text is 1123 chars long and the database charset is ALUTF32. Are there any options to tweak in oracle to allow longer text compares?
Avatar of Sujith
Sujith
Flag of United Kingdom of Great Britain and Northern Ireland image

You are inserting into which table?

Possibly the column where b0v.value is inserted has a smaller size than the actual data.
Avatar of hernst42

ASKER

No it's just a select statement, no insert or update.
there was a paranthesis mismatch... try this

select distinct v0."LK" as "Lkey", TO_NUMBER(v2."Value") AS "Value"
from b0 v0
inner join b0v v1 on (v1."Field"=100535 and v1."FK_LK"=v0."PK")
inner join ACLEntry acl5376 on (acl5376."FK_ACL"=v0."FK_ACL")
left outer join b0v v2 on (v2."Field"=100464 and v2."FK_LK"=v0."PK")
WHERE
(
      (v1."Value"<>'notis manu torulos Caesar illustri donet vati veterum cudimus pueros Chonrade torulos pignus tacitis Chonrade viros Haec valeat pignus tessera Artificum pueros vati nomismata veterum notis cudimus scribere nos quisque Artificum dabo pignus donet valeat horis valeat manu iuglans Ipse ut pignus nos facta Et chartula scribere eximias Et valeat dabo iuglans scribere nomismata Et cudimus cudimus Dum chartacea Et quisque picta signaque tacitis mei vates vati figere Emblemata vates cudimus nomismata chartacea valeat iuvenes facta Caesar tibi fallit ut chartula mei petasis veterum tibi segnes pueros Quae segnes munera torulos eximias iuvenes manus horis Dum Caesar segnes figere pignus iuglans habere supremus vates horis Et Emblemata Dum illustri manu ut parmas illustri chartacea Haec pignus pueros festivis munera picta Detinet Artificum Chonrade chartula Detinet nos chartula Ipse manu supremus habere torulos torulos torulos Artificum veterum et notis eximias ut amoris chartula amoris horis pueros viros Emblemata iuvenes petasis segnes nos scribere figere chartula veterum notis Vestibus Quae ut manus scribere picta Haec habe At tacitis veterum'
                  or v1."Value" is null
      )
      and
      (acl5376."FK_Benutzer"=1 or acl5376."FK_Gruppe" IN (9 , 6 , 4 , 1 , 2 , 3 , 13 , 14)
      )
      and acl5376."Type"='r'
)
      and v0."histtop"='Y'  
ORDER BY TO_NUMBER(v2."Value"), v0."LK" desc
as this is autogenerated code, where sould be the paranthesis mismatch? Also corrected SQL gives the same error:


inner join b0v v1 on (v1."Field"=100535 and v1."FK_LK"=v0."PK")
           *
ERROR at line 3:
ORA-01401: inserted value too large for column

Open in new window

so then check this portion of the query...

v1."Value"<>'notis manu torulos Caesar illustri donet vati veterum cudimus pueros Chonrade torulos pignus tacitis Chonrade viros Haec valeat pignus tessera Artificum pueros vati nomismata veterum notis cudimus scribere nos quisque Artificum dabo pignus donet valeat horis valeat manu iuglans Ipse ut pignus nos facta Et chartula scribere eximias Et valeat dabo iuglans scribere nomismata Et cudimus cudimus Dum chartacea Et quisque picta signaque tacitis mei vates vati figere Emblemata vates cudimus nomismata chartacea valeat iuvenes facta Caesar tibi fallit ut chartula mei petasis veterum tibi segnes pueros Quae segnes munera torulos eximias iuvenes manus horis Dum Caesar segnes figere pignus iuglans habere supremus vates horis Et Emblemata Dum illustri manu ut parmas illustri chartacea Haec pignus pueros festivis munera picta Detinet Artificum Chonrade chartula Detinet nos chartula Ipse manu supremus habere torulos torulos torulos Artificum veterum et notis eximias ut amoris chartula amoris horis pueros viros Emblemata iuvenes petasis segnes nos scribere figere chartula veterum notis Vestibus Quae ut manus scribere picta Haec habe At tacitis veterum'

try shortening the compared value such as

v1."Value"<>'notis manu torulos Caesar illustri donet vati veterum cudimus pueros Chonrade torulos pignus tacitis Chonrade viros Haec%'


and rerun the query
Can you run your query in sqlplus, and post the complete statement and error.( copy and paste everything from sqlplus, no editing)
run via sqlplus the long statement and the shortend one. Is'nt oracle able to compare strings longer than 1024 chars? Is there an option to tweak that in oracle. With oracle 10 that was possible:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
 
SQL> select distinct v0."LK" as "Lkey", TO_NUMBER(v2."Value") AS "Value" from b0 v0 inner join b0v v1 on (v1."Field"=100535 and v1."FK_LK"=v0."PK") left outer join b0v v2 on (v2."Field"=100464 and v2."FK_LK"=v0."PK") inner join ACLEntry acl5376 on (acl5376."FK_ACL"=v0."FK_ACL") WHERE ((((v1."Value"<>'notis manu torulos Caesar illustri donet vati veterum cudimus pueros Chonrade torulos pignus tacitis Chonrade viros Haec valeat pignus tessera Artificum pueros vati nomismata veterum notis cudimus scribere nos quisque Artificum dabo pignus donet valeat horis valeat manu iuglans Ipse ut pignus nos facta Et chartula scribere eximias Et valeat dabo iuglans scribere nomismata Et cudimus cudimus Dum chartacea Et quisque picta signaque tacitis mei vates vati figere Emblemata vates cudimus nomismata chartacea valeat iuvenes facta Caesar tibi fallit ut chartula mei petasis veterum tibi segnes pueros Quae segnes munera torulos eximias iuvenes manus horis Dum Caesar segnes figere pignus iuglans habere supremus vates horis Et Emblemata Dum illustri manu ut parmas illustri chartacea Haec pignus pueros festivis munera picta Detinet Artificum Chonrade chartula Detinet nos chartula Ipse manu supremus habere torulos torulos torulos Artificum veterum et notis eximias ut amoris chartula amoris horis pueros viros Emblemata iuvenes petasis segnes nos scribere figere chartula veterum notis Vestibus Quae ut manus scribere picta Haec habe At tacitis veterum' or v1."Value" is null)))) and ((acl5376."FK_Benutzer"=1 or acl5376."FK_Gruppe" IN (9 , 6 , 4 , 1 , 2 , 3 , 13 , 14)) and acl5376."Type"='r') and v0."histtop"='Y'  ORDER BY TO_NUMBER(v2."Value"), v0."LK" desc;
select distinct v0."LK" as "Lkey", TO_NUMBER(v2."Value") AS "Value" from b0 v0 inner join b0v v1 on (v1."Field"=100535 and v1."FK_LK"=v0."PK") left outer join b0v v2 on (v2."Field"=100464 and v2."FK_LK"=v0."PK") inner join ACLEntry acl5376 on (acl5376."FK_ACL"=v0."FK_ACL") WHERE ((((v1."Value"<>'notis manu torulos Caesar illustri donet vati veterum cudimus pueros Chonrade torulos pignus tacitis Chonrade viros Haec valeat pignus tessera Artificum pueros vati nomismata veterum notis cudimus scribere nos quisque Artificum dabo pignus donet valeat horis valeat manu iuglans Ipse ut pignus nos facta Et chartula scribere eximias Et valeat dabo iuglans scribere nomismata Et cudimus cudimus Dum chartacea Et quisque picta signaque tacitis mei vates vati figere Emblemata vates cudimus nomismata chartacea valeat iuvenes facta Caesar tibi fallit ut chartula mei petasis veterum tibi segnes pueros Quae segnes munera torulos eximias iuvenes manus horis Dum Caesar segnes figere pignus iuglans habere supremus vates horis Et Emblemata Dum illustri manu ut parmas illustri chartacea Haec pignus pueros festivis munera picta Detinet Artificum Chonrade chartula Detinet nos chartula Ipse manu supremus habere torulos torulos torulos Artificum veterum et notis eximias ut amoris chartula amoris horis pueros viros Emblemata iuvenes petasis segnes nos scribere figere chartula veterum notis Vestibus Quae ut manus scribere picta Haec habe At tacitis veterum' or v1."Value" is null)))) and ((acl5376."FK_Benutzer"=1 or acl5376."FK_Gruppe" IN (9 , 6 , 4 , 1 , 2 , 3 , 13 , 14)) and acl5376."Type"='r') and v0."histtop"='Y'  ORDER BY TO_NUMBER(v2."Value"), v0."LK" desc
                                                                                                                                                                                                                               *
ERROR at line 1:
ORA-01401: inserted value too large for column
 
 
 
 
SQL> select distinct v0."LK" as "Lkey", TO_NUMBER(v2."Value") AS "Value" from b0 v0 inner join b0v v1 on (v1."Field"=100535 and v1."FK_LK"=v0."PK") left outer join b0v v2 on (v2."Field"=100464 and v2."FK_LK"=v0."PK") inner join ACLEntry acl5376 on (acl5376."FK_ACL"=v0."FK_ACL") WHERE ((((v1."Value"<>'veterum' or v1."Value" is null)))) and ((acl5376."FK_Benutzer"=1 or acl5376."FK_Gruppe" IN (9 , 6 , 4 , 1 , 2 , 3 , 13 , 14)) and acl5376."Type"='r') and v0."histtop"='Y'  ORDER BY TO_NUMBER(v2."Value"), v0."LK" desc;
 
      Lkey      Value
---------- ----------
       334
       333
       332
       331
       330
       329
       328
       327
       326
       325
       306
 
      Lkey      Value
---------- ----------
       247
       246
       245
       179
       168
        80
         4
         3
         2
         1
 
21 rows selected.
 
 
 
Connected to:
Oracle Database 10g Release 10.2.0.1.0 - 64bit Production
 
SQL> select distinct v0."LK" as "Lkey", TO_NUMBER(v2."Value") AS "Value" from b0 v0 inner join b0v v1 on (v1."Field"=100535 and v1."FK_LK"=v0."PK") left outer join b0v v2 on (v2."Field"=100464 and v2."FK_LK"=v0."PK") inner join ACLEntry acl5376 on (acl5376."FK_ACL"=v0."FK_ACL") WHERE ((((v1."Value"<>'notis manu torulos Caesar illustri donet vati veterum cudimus pueros Chonrade torulos pignus tacitis Chonrade viros Haec valeat pignus tessera Artificum pueros vati nomismata veterum notis cudimus scribere nos quisque Artificum dabo pignus donet valeat horis valeat manu iuglans Ipse ut pignus nos facta Et chartula scribere eximias Et valeat dabo iuglans scribere nomismata Et cudimus cudimus Dum chartacea Et quisque picta signaque tacitis mei vates vati figere Emblemata vates cudimus nomismata chartacea valeat iuvenes facta Caesar tibi fallit ut chartula mei petasis veterum tibi segnes pueros Quae segnes munera torulos eximias iuvenes manus horis Dum Caesar segnes figere pignus iuglans habere supremus vates horis Et Emblemata Dum illustri manu ut parmas illustri chartacea Haec pignus pueros festivis munera picta Detinet Artificum Chonrade chartula Detinet nos chartula Ipse manu supremus habere torulos torulos torulos Artificum veterum et notis eximias ut amoris chartula amoris horis pueros viros Emblemata iuvenes petasis segnes nos scribere figere chartula veterum notis Vestibus Quae ut manus scribere picta Haec habe At tacitis veterum' or v1."Value" is null)))) and ((acl5376."FK_Benutzer"=1 or acl5376."FK_Gruppe" IN (9 , 6 , 4 , 1 , 2 , 3 , 13 , 14)) and acl5376."Type"='r') and v0."histtop"='Y'  ORDER BY TO_NUMBER(v2."Value"), v0."LK" desc;
 
no rows selected

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Sujith
Sujith
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ok that works with the expliciet cast, do you also know why?