![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert Personal
[erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsamer
Hallo,
ich habe in einer Tabelle ein Feld VARCHAR(10), dessen Inhalte tatsächlich immer genau 4 Zeichen lang sind mit UTF8. Deshalb wollte ich die Tabelle jetzt anpassen:
SQL-Code:
Dabei bekomme ich aber eine in diesem Zusammenhang seltsame Fehlermeldung:
ALTER TABLE Abteilungen
ALTER COLUMN Kurzbezeichnung TYPE CHAR(4); Zitat:
Kann mir jemand helfen? Danke! Jürgen |
Re: ALTER COLUMN ... TYPE klappt nicht mit seltsamer Meldung
Evtl. hat hier Firebird ähliche Einschränkungen wie Oracle so das verkleinern nur über eine Hilfspalte möglich ist.
|
Re: ALTER COLUMN ... TYPE klappt nicht mit seltsamer Meldung
Es scheint sich tatsächlich nur um eine irreführende Fehlermeldung zu handeln. Ein Versuch, auf CHAR(20) zu ändern, klappt nämlich.
Na gut, dann muss es eben über eine Hilfsspalte gehen. Jürgen |
Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa
Hallo,
viell. hilft das hier weiter. ![]() Ein UTF8 Zeichen könnte 4 Byte verbraten, FB berücksichtigt das. Warum nicht 20 statt 16 (4*4) angezeigt wird -> ? Heiko |
Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa
Hallo,
ich sagte ja von Anfang an: Mir ist klar, dass es nicht unbedingt ausgeführt wird. Eine Fehlermeldung wie "mindestens 16 Zeichen" hätte ich sofort verstanden, aber 40? Wer weiß, woher die Fehlermeldung kommt. IBExpert sorgt dafür, dass der eine ALTER-Befehl sich um alles kümmert (daher auch der Verweis auf die Systemtabellen). Vielleicht werden aus dem einen ALTER-Befehl etwa 5 Zwischenbefehle, einer davon liefert eine missverständliche Fehlermeldung, die anderen setzen das in die endgültig irreführende Meldung um. Aber ich glaube, das brauchen wir wirklich nicht zu vertiefen (auch HK nicht). Ich nehme eben hin, dass der Umweg über die temp. Spalte nötig ist. Jürgen |
Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa
Hallo,
du hast 10 Zeichen. Ein Unicode belegt im schmlimmsten Fall 4 Byte (siehe mein Link). 10*4 = 40 ... So habe ich den Link zumindestens verstanden. Heiko |
Re: [erledigt] ALTER COLUMN ... TYPE klappt nicht mit seltsa
Hallo Heiko,
ahhh, dieser Hinweis macht jedenfalls die Meldung verständlich. Das Feld war bisher mit der maximalen Länge von 10 Zeichen definiert; die Inhalte hatten tatsächlich genau 4 Zeichen. Das ist der Unterschied zwischen Theorie und Praxis: Das DBMS kümmert sich um die Theorie (10x4), der Anwender um die Praxis (4x4). Aber wie gesagt: Umweg benutzen, Thema erledigt. Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz