VARCHAR2 in LONG umwandeln

Hallo,

ich arbeite mit ORACLE 9i und habe eine Tabelle, in welcher ich ein VARCHAR2 Feld in ein LONG Feld umwandeln möchte.

Wie kann ich das machen?

  • Ich würde den LONG Datentyp auf jeden Fall vermeiden. Benutzte anstelle einen CLOB.
  1. Neues Tempfeld mit Datentype varchar2
  2. Kopiere bestehendes varchar2 feld in tempfeld
  3. Neues Feld mit typ CLOB
  4. Löschen altes varchar2 feld
  5. Kopiere tempfeld in Clob
  6. Löschen tempfeld

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

warum muss es denn etwas unflexibles, altertümliches wie LONG sein?
Such’ dir doch lieber etwas aus der LOB-Familie, z. B. CLOB.

Da ich gerade keine 9er parat habe, kann ich das folgende nicht testen. Die Fehlergefahr ist also höher:
ALTER TABLE tabelle MODIFY col CLOB;
könnte es sein. Falls das fehlschlägt, z. B. wegen nicht leerer Tabelle, müsste der Weg über eine staging table gangbar sein, also:
Originaldaten in temp. Tabelle schieben, Original leeren, Original ändern, Daten zurückschieben.

Grüßt: Guido