PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL: Migrieren von blob nach Varchar. Wie?


josefYY
2008-01-28, 16:27:17
Hallo

Hab folgendes Problem.
Ich hab ne Tabelle (Informix) mit einem blob-Feld. Die Tabelle ist nicht leer.
Nun möchte das Feld von blob nach LVarchar migrieren. Von der grösse her ist das kein Problem, da in dem derzeitigen blob-Feld maximal 4000-Zeichen stehen.
Hab verschiedene Strategien ausprobiert. Aber nix hat geklappt. Leider kann man nicht per Substr auf blob's operieren.
Hat jemand eine Idee, wie man das umsetzen könnte?
Danke im Voraus.
josefYY

josefYY
2008-01-30, 16:20:40
Hab mittlerweile eine Lösung gefunden, falls es jemanden interessiert.
frameid ist hierbei ein Serial-Feld und Index zugleich. Das blob-Feld hat den Namen 'frame'.

BEGIN WORK;
lock table table_name IN EXCLUSIVE MODE;

unload to 'frames.dmp'
select frameid, frame[1,4000]
from table_name;

DELETE FROM table_name;
ALTER TABLE table_name DROP frame;
ALTER TABLE table_name ADD frame LVARCHAR(4000);

load from 'frames.dmp'
insert into table_name;
COMMIT;