[Oracle]Felder-/Tabellennamen sprechend gestalten

TVE

Erfahrenes Mitglied
Hi zusammen

Ich habe momentan ein Problem bei Oracle SQL, dass ich zwar über ein Tool (SQL Developer) sprechende Tabellen- und Feldnamen erstellen kann ohne einen Underline-Character zu benutzen. (Beispielsweise: Dies ist Feld 1 )

So lange ich das Feld dann nicht explizit anspreche, kann ich auch Daten reinfüllen.
(Also z.B. INSERT INTO tabelle VALUES ('Wert 1'); )

Wenn ich dann aber folgendes versuche:
INSERT INTO tabelle ('Dies ist Feld 1') VALUES ('Wert 1');

Geht es nicht.Ausprobiert habe ich es auch mit doppelten Anführungsstrichen oder durch einfaches Abtrennen bei mehreren Elementen mit Kommata und dabei keine Quote-Zeichen verwendend.

Ich kenne den Oracle-SQL Standard noch nicht sonderlich gut. Aber was mich stört ist, dass ich solche Tabellen-/Feldnamen vergeben kann und dann aber nicht explizit anzusprechen vermag. Das wäre dann ja ein sinnloses Feature.

Grüsse
TVE
 
Ganz davon abgesehen, dass man das auch unbedingt vermeiden sollte Spalten und Tabellen solche Namen zu geben, kannst du sehrwohl auf alle Werte zugreifen.
Sprechende Beschreibungen gehören in einen Kommentar für Tabellen und Spalten und nicht in deren Namen.

Mache mal ein DESC auf deine Tabelle.Wenn du die Tabelle nicht findest mach ein
SQL:
SELECT TABLE_NAME FROM USER_TABLES;

In Oracle gilt grundsätzlich: Wenn Objektbezeichnungen NICHT in " geschrieben werden, sind sie Case Insensitiv solange die Objekte direkt im Code angesprochen werden. Musst du ein Objektnamen als VARCHAR2 übergeben, so muss alles Groß geschrieben werden, weil Oracle intern auch alles Groß schreibt.

Anders sieht es aus wenn ich mein Objektnamen in " " schreibe. Dann speichert Oracle dies auch genau so ab. D.h. aber auch dass du zum Abfragen alle Objekte zwingend in " " benennst. Unterscheidet sich die Schreibweise nur in Groß- oder Kleinschreibung, einem Leerzeichen o.ä. wird das Objekt schon nicht mehr gefunden.

Also daher: KURZE Objektnamen, vor allem OHNE SONDERZEICHEN, anstatt Leerzeichen immer ein "_" verwenden.
Beschreibungen dann als Kommentar zur Tabelle / Spalte hinzufügen.

SQL:
COMMENT ON TABLE <tabname> IS 'meine Beschreibung zur Tabelle';
COMMENT ON COLUMN <tabname>.<columnname> IS 'Meine Beschreibung der Spalte';
 
Zuletzt bearbeitet von einem Moderator:
Hallo exceptionfault (guter Nickname übrigens ;) )

Danke für die Guidelines.

Kurze Feldbezeichner sind eben bei meinem Data Warehouse nicht unbedingt so toll, weil eine Tabellendimension oft mehrere 100 Felder beinhaltet, darum sehr gut schon durch den Feldnamen unterscheidbar sein sollten.

Das mit den doppelten Anführungszeichen ist eine Info auf die ich gehofft hatte. Dafür meinen Dank.

Das mit dem Comment ist eine Überlegung wert. Ich werd Mal versuchen herauszufinden, was bei mir in der Firma wohl am konformsten ist. Irgend eine Kombination aus sprechedem Feldnamen und Comment wird wohl am besten greiffen.
 
Ich verstehe schon, dass es bei großen Tabellen oft schwer ist sich kurze Namen für Spalten zu überlegen, gerade in einem DWH ( DataWarehouse). Aber meiner Erfahrung nach hat man hinterher nur Probleme wenn man Objektnamen in " " angibt.
z.B. massivst bei Auswertungen, da nicht jedes Tool bei der Abfrage auch die Spalten in " " schreibt und man bei vielen BI Tools auch nicht unbedingt jedes SQL Statement anpassen kann oder auch nicht möchte. Selbst über ODBC könntest du riesige Probleme bekommen.
Noch schlimmer wirds wenn jemand auf die Idee kommt auch noch Umlaute oder Sonderzeichen in die Namen aufzunehmen, dann kann es z.B. sein dass nach einem Import / Export die Spalten anders heissen, weil eine Zeichensatzkonvertierung stattgefunden hat :(

Und das wichtigste: Lange Objektbezeichnungen ersetzen keine Dokumentation!
 

Neue Beiträge

Zurück