Hallo zusammen,
ich habe ein Problem, das eigentlich keins sein sollte.
In einer Tabelle möchte ich eine Spalte updaten, wobei nur ein Teil der im Feld enthaltenen Daten verändert werden soll.
Das Problem, auf das ich stoße, ist die Spaltenbreite.
Hier erstmal mein Script:
Das Script bricht mit einem Fehler ab: Value too large for Column- act: 82, max: 80
So weit, so gut.
Mir scheint, daß Oracle versucht, den REPLACE in allen Feldern aus SPALTE zu ersetzen, ohne dabei die vorgegebene Länge zu berücksichtigen.
Ein
gibt keinen Datensatz aus. Die Spaltenbreite beträgt 80 Zeichen und ich habe vorher alle Datenfelder auf max. 69 getrimmt, weshalb das Script eigentlich fehlerfrei laufen sollte.
Da dies nicht der Fall ist, mache ich entweder einen Denkfehler, oder Oracle berücksichtigt nicht die Bedingungen der where-Anweisungen.
Hat jemand ne Idee?
Dank im Voraus.
Gruß,
Stephan
ich habe ein Problem, das eigentlich keins sein sollte.
In einer Tabelle möchte ich eine Spalte updaten, wobei nur ein Teil der im Feld enthaltenen Daten verändert werden soll.
Das Problem, auf das ich stoße, ist die Spaltenbreite.
Hier erstmal mein Script:
Code:
update tabelle set spalte=replace(spalte,'A-DORF','B-STADT-A-DORF') where length(spalte)<=69 and spalte like '%12345 A-DORF%'
So weit, so gut.
Mir scheint, daß Oracle versucht, den REPLACE in allen Feldern aus SPALTE zu ersetzen, ohne dabei die vorgegebene Länge zu berücksichtigen.
Ein
Code:
select spalte from tabelle where length(spalte)>69 and spalte like '%12345 A-DORF%'
Da dies nicht der Fall ist, mache ich entweder einen Denkfehler, oder Oracle berücksichtigt nicht die Bedingungen der where-Anweisungen.
Hat jemand ne Idee?
Dank im Voraus.
Gruß,
Stephan
Comment