christian decker: sql datentyp ändern da zeichenfolgenverkettung zu lang

hallo newsgroup,

bei einer sql abfrage (oracle 7.3.4) bekomme ich folgende fehlermeldung:

ORA-01489: Das Ergebnis der Zeichenfolgenverkettung ist zu lang

ich moechte mehrere spalten (acht an der zahl) vom datentyp varchar2(512) verketten.

select
feld_1||feld_2||feld_3||feld_4||feld_5||feld_6||feld_7||feld_8 "Verkettung"
from tabelle

wie kann ich die zeichenfolgenverkettung in der selectabfrage schreiben daß ich die fehlermeldung nicht bekomme. gibt es eine konvertierung?

gruss christian

  1. Hallo Christian,

    Ursache dürfte sein, dass er das Ergebnis als VARCHAR2 zurückliefern
    will und die max. gestattete Länge 2000 (m.E. bis 7.3.x) oder 4000 Byte (ab 8.1.x) ist.
    Daher kannst nur die Columns einzeln oder soweit verkettet, dass die max. Länge nicht überschritten wird, und ausserhalb SQL miteinander verketten.

    Gruß Ralf

    1. Hallo Christian,

      Ursache dürfte sein, dass er das Ergebnis als VARCHAR2 zurückliefern
      will und die max. gestattete Länge 2000 (m.E. bis 7.3.x) oder 4000 Byte (ab 8.1.x) ist.
      Daher kannst nur die Columns einzeln oder soweit verkettet, dass die max. Länge nicht überschritten wird, und ausserhalb SQL miteinander verketten.

      Gruß Ralf

      hallo ralf,

      erstmal vielen dank für deine antwort. du hast bestimmt recht.
      zwei verkettungen funktionieren noch. bei der dritten bringt
      er die fehlermeldung. er steigt so bei 1000 zeichen aus.

      ich will eigentlich aus der verkettung nur einen string extrahieren
      (mit substr). da der text fortlaufend geschrieben ist und durchaus
      über das ende einer zelle geht muß ich erst die verkettung machen
       und dann den string suchen. die lange zeichenfolge will ich mir gar
      nicht ansehen. habe ich da keine chance, denn auch bei substring gibt
      er die fehlermeldung aus.

      gruss christian