Wozu sind Standards eigentlich gut, wenn sich keiner an sie hält. So einen Standard kann man eigentlich in die Tonne drücken.
Ich meine hier den ISO-SQL-Standard. Hier kocht jeder Datenbank-Hersteller sein eigenes proprietäres Süppchen. Die einen, damit zahlende Kunden sich nicht mehr aus der Umklammerung des Herstellers befreien können, die anderen, weil sie die Bedeutung von Standards nicht erkannt haben oder erkennen wollen. Erstes gilt in jedem Fall für Oracle, zweiteres muss ich leider bei MySQL annehmen.
Trotzdem ist der SQL-Standard seit Jahren von unschätzbarer Bedeutung (und hat auch nichts in einer Tonne verloren).
Was aber fast noch mehr nervt, aus heutiger Sicht fast schon ein Skandal ist, ist, dass die ISO für das Herunterladen der Standard-Dokumente
richtig abkassieren will. Die etwas kostengünstigere Alternative wäre nur der Kauf eines Buches.
Aber zurück zur Standardtreue der Hersteller.
"Es gibt noch immer nicht auch nur ein einziges RDBMS, welches vollständig den SQL92 Standard implementiert. DB2 erhält wohl die meisten Punkte bei SQL92, SQL Server macht einen guten Job mit der Compliance mit SQL92 und Oracle ist ein proprietärer Alptraum ;-)"
schreibt jemand im
tech-archive.net. Man könnte ja noch damit leben, dass SQL92 noch nirgendwo vollständig realisiert wurde. Übel ist allerdings, dass dann noch unnötige proprietäre "Erweiterungen" vorgenommen werden müssen.
Der Standard definiert einen CASE-Ausdruck als Kontrollstruktur innerhalb eines Select-Statements. Damit lassen sich auch alle IF-THEN-ELSE Bedürfnisse befriedigen. Microsoft, IBM, Oracle, MySQL und andere haben den CASE-Ausdruck auch als solchen implementiert. Nur MySQL setzt noch einen oben drauf und bietet dem begeisterten Datenbankbefrager ein
if(expr1,expr2,expr3) an. Das ist kürzer zu schreiben und kompakter zu lesen, daher ist es also nur gut.
Böser Irrtum! Die heftige Verwendung dieser Funktion kann sich als Falle erweisen. Denn sollte aus
erfindlichem Grunde mal der Wechsel auf ein anderes DBMS-System geboten sein, müssen diese und andere Inkompatibilitäten gepatcht werden. Das kostet Zeit und Geld oder nimmt die Entscheidungsfreiheit.
Ich hoffe, man muss hier MySQL nicht den bösen Willen Oracles unterstellen. Vielleicht war das nur eine historische Dummheit, mit der MySQL nun leben muss.
Trotzdem ist auch das "
proprietäre Scheiße".
Diese "Empfehlung" kann man in Oracles SQL-Referenz finden:VARCHAR Datatype Do not use the VARCHAR datatype. Use the VARCHAR2 datatype instead. Although the VARCHAR datatype is currently synonymous with VARCHAR2, the VARCHAR datatype is scheduled to be
Aufgenommen: Sep 05, 23:49
Per Mausklicks, Makro oder VBA-Routine lassen sich in der Jet-Engine unter MS Access gespeicherte Tabellen wie beschrieben leicht nach DB2 migrieren. Eine Datenbank besteht aber nicht nur aus einer zusammenhanglosen Ansammlung von Tabellen. Die Access-Exp
Aufgenommen: Apr 09, 21:17