Hallo Jochen,
Verständnis- bzw. Klärungsfrage:
Vorgabe für ein Feld in einer Tabelle mit folgende Einstellungen:
Feldtyp "Text [VARCHAR]"
Länge: 50
Was passiert mit den Leerzeichen für folgende Einträge:
"Base" -> vier Buchstaben und keine Leerzeichen.
"VW AG" -> vier Buchstaben und ein (1) Leerzeichen zwischen "VW" und
"AG"; ansonsten keine Leerzeichen.
"The document foundation" -> 21 Buchstaben und insgesamt zwei
Leerzeichen - ein Leerzeichen zwischen "The" und "document" sowie ein
Leerzeichen zwischen "document" und "foundation"; ansonsten keine
Leerzeichen.
Wenn das so wäre, würde mich interessieren, wie Base erkennt, dass der
Eintrag einmal ein, einmal zwei und einmal drei Wörter enthält und
konsequent immer die rechten überflüssigen Leerzeichen entfernt.
UPDATE "Tabellenname" SET "Feldname" = RTRIM("Feldname")
entfernt alle nicht Leerzeichen rechts von dem enthaltenen Text/Zahl. Es
wird also einfach nur hinten abgeschnitten, nicht in der Mitte.
Das kannst Du testen, indem Du in einem Varchar-Feld die Einträge der
obigen Art machst und dabei konsequent z.B. 5 Leerzeichen hinten
anfügst. Du kannst es genauso gut testen, indem Du ein CHAR-Feld nimmst.
Hier ein Beispiel:
SELECT "Text_fix_25", RTRIM("Text_fix_25"), LENGTH("Text_fix_25"),
LENGTH(RTRIM("Text_fix_25")) FROM "Tabelle1"
Das Feld heißt "Text_fix_25" - also feste Zeichenbreite, 25 Zeichen auf
jeden Fall, Rest aufgefüllt mit Leerzeichen. Die 2. Spalte zeigt den
gleichen Inhalt - die Leerzeichen kannst Du ja nicht sehen, höchstens
daran erkennen, wenn Du in die jeweilige Zelle mit dem Cursor gehst. Die
3. Spalte zeigt für alle Felder, in denen etwas steht, '25' an. Die 4.
Spalte zeigt die Breite des tatsächlichen Textes abzüglich der
Leerzeichen rechts an. Hast Du z.B. in einem Feld "1 2 3" stehen, so
gibt Spalte 3 brav '25' aus, Spalte 4 hingegen '5' (3 Ziffern und zwei
Leerzeichen zwischen den Ziffern).
Was ist, wenn ein "Wort" eine Zahl ist?
Was ist, wenn ein "Wort" nur einen Buchstaben enthält (wie z.B. die
Adresse "Fantasiestrasse 1" oder den Text "I´m a boy")?
Kannst Du alles mit der obigen Abfrage testen.
Ich habe mir dafür eine Test-Datenbank angelegt. Da kann ich dann eben
ein Feld zu einer Tabelle hinzufügen und Funktionen ausprobieren. Die
Funktionen stehen alle im Handbuch/Anhang.
Gruß
Robert