Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Oracle Unnötige Leerzeichen werden mit gespeichert (https://www.delphipraxis.net/171257-oracle-unnoetige-leerzeichen-werden-mit-gespeichert.html)

roland1258 28. Okt 2012 18:52

Datenbank: Oracle Database • Version: 11g Express Edition • Zugriff über: DBExpress

Oracle Unnötige Leerzeichen werden mit gespeichert
 
Hallo zusammen,

ich habe eine Tabelle erstellt. In dieser Tabelle befindet sich eine Spalte vom Typ Char mit einer Größe von 25 Zeichen.

Mit folgender select-Anweisung versuche ich herauszufinden, ob die Bezeichnung bereits vorhanden ist.

Delphi-Quellcode:
1 with q_kat_select do
2  begin
3   close;
4   sql.Clear;
5   sql.Add('select * from at_kategorie where bezeichnung = :bezeichnung');
6   parambyname('bezeichnung').AsString := e_bezeichnung.Text;
7   open;
8   if = fieldbyname('bezeichnung').AsString = e_bezeichnung.Text then
9     showmessage('Vorhanden')
10   else
11    showmessage('Anlegen');
12 
13 end;
Wenn ich eine bereits vorhandene Bezeichnung eingebe, kommt trotzdem dei Meldung in Zeile 15.

Das Problem ist, dass beim speichern nicht nur die Bezeichnung, sondern auch Leerzeichen mit gespeichert werden. Wenn die Bezeichnung 10 Zeichen hat, setzt Oracle 15 Leerzeichen dazu.

Nun meine Frage. Gibt es eine Möglichekeit, dass Leerzeichen nicht mitgespeichert werden?
Diese Phänomen habe ich nur in Oracle.

sx2008 28. Okt 2012 19:27

AW: Oracle Unnötige Leerzeichen werden mit gespeichert
 
Das Verhalten ist normal.
Den Datentyp CHAR verwendet man dann, wenn vor vornerein klar ist wieviele Zeichen gebraucht werden.
Zum Beispiel
Code:
IsoLand CHAR(2)
ISBN_13 CHAR(13)
Steuernummer CHAR(13)
Wenn man Strings mit variable Länge bis zu einer best. Obergrenze speichern möchte nimmt man VARCHAR.

PS:
Oracle hat natürlich vom Standard abweichende Datentypen.
Kleine Übersicht hier: http://ss64.com/ora/syntax-datatypes.html

roland1258 28. Okt 2012 19:41

AW: Oracle Unnötige Leerzeichen werden mit gespeichert
 
Hallo,

vielen Dank für den wertvollen Tipp.

Ich habe es gleich probiert und es funktioniert.

:-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 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