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 redefined as a separate datatype used for variable-length character strings compared with different comparison semantics.
Leider wird ihr mehr oder weniger fröhlich gefolgt. Man gebe nur "VARCHAR2" als Google-Suchbegriff ein und staune.
Glücklicherweise ist SQL eine
standardisierte Sprache. Dazu gehört die Definition von Standard-Datentypen. VARCHAR ist einer. VARCHAR2 ist Oracles Erfindung und hat nichts mit dem Standard zu tun.
Was könnte Oracle veranlassen, seine zahlenden Kunden aufzufordern vom Standard abzuweichen? Der angegebene Grund kling doch sehr ominös. Will Oracle in Sachen VARCHAR auch vom Standard abrücken? Warum wird VARCHAR2 nicht für die geplanten Erweiterungen verwendet?
Einige DBMS-Hersteller versuchen mit Erweiterungen zum Standard letztendlich Kunden an sich zu binden. Für sie stellt der SQL-Standard eher eine Gefahr dar.
Oracle greift hier ganz tief in die Trickkiste. Wer sich einmal auf obige "Empfehlung" eingelassen hat, kommt möglicherweise nur mit großem Aufwand aus Oracles Sackgasse heraus. Der Wechsel - aus welchem Grund auch immer - zu einem anderen DBMS wird dann sehr teuer.
Damit bindet man Kunden.
Man kann dies auch mit hervorragenden Features der eigenen Produkte erreichen. Es ist aber günstiger, Kunden mit fadenscheinigen Empfehlungen ist eine Sackgasse zu schicken.
SQL:2003 sei Dank für eine Menge Zeit, die ich letzte Woche sparen konnte. Schuld daran waren vor allen "MERGE", aber auch eine mit "GENERATED ALWAYS AS IDENTITY" definierte Identitätsspalte. Es wäre schon viel Schreib- und Testarbeit gewesen ohne
Aufgenommen: Jun 25, 22:09