Einzelnen Beitrag anzeigen

Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#1

Firebird: String-Feld in Blob umwandeln

  Alt 14. Dez 2006, 11:28
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus
Hallo,

ich habe in einer DB-Tabelle ein Feld VARCHAR(255), dies möchte ich gerne in einen BLOB SUB_TYPE TEXT umwandeln. Wie kann ich das tun? "Einfaches" Umwandeln, z.B. im IBExpert geht nicht, da dadurch die interne Struktur mächtig beschädigt wird. Drum habe ich mir ein Script gebastelt:

SQL-Code:
ALTER TABLE AUFTRAG ADD GC2 T_TEXTBLOB;
UPDATE AUFTRAG A SET A.GC2=A.GARANTIECOMMENT; /* GARANTIECOMMENT ist VARCHAR(255) */

/* diverse Trigger auf GARANTIECOMMENT deaktivieren, lasse ich hier weg */ 

ALTER TABLE AUFTRAG DROP GARANTIECOMMENT;
ALTER TABLE AUFTRAG ALTER GC2 TO GARANTIECOMMENT;

/* diverse Trigger auf GARANTIECOMMENT aktivieren, lasse ich hier weg*/ 

COMMIT;
Das läuft auch, ich kann auf das "neue" Feld lesend zugreifen, aber sobald ich etwas schreiben möchte kommt als Fehler Meldung "Data conversion Error from Field BLOB" (oder ähnlich).

Wie kann ich diese Änderung "richtig" durchführen ? Das einfache Kopieren tut es hier wohl nicht
Gruß, Jan
  Mit Zitat antworten Zitat