Begrenzung der Namen für Tabellen, Felder und Sequenzen etc
Für alle Bezeichner von Spalten, Tabellen und Sequenzen gilt ein strenges Limit von 30 Zeichen. Ich weiß nicht wieso das gesetzt worden ist, aber gerade bei einer Migration von bestehenden Applikation kann dies ein echt kniffeliges Problem darstellen! Wenn jemand weiß, wieso es gerade 30 Zeichen sind, bitte in die Kommentare schreiben :)
Problematische Bezeichner/Schlüsselbegriffe
Es gibt so einige Keywords/Schlüsselbegrifflichkeiten die unter Oracle nicht als Spalten- oder Tabellenbezeichnung genommen werden dürfen. Auch Abfragen, in denen eine Spalte per as Anweisung einen neuen Namen bekommt können Probleme verursachen. Ein (hoffentlich) vollständige Liste kann unter [1] oder [2] eingesehen werden.
Autoincrement unter Oracle? Fehlanzeige!
Aus der Postgres bin ich gewohnt, dass bei der Kennzeichnung einer Spalte als Primary Key auch eine Sequenz erstellt wird und an das Feld gebunden wird. Bei Oracle passiert das nicht automatisch. Man muss manuell eine Sequenz erzeugen, die dann an das Feld gebunden werden kann. Sicher kein Weltuntergang, aber für mich ein Vorteil für Postgres.
Transaktionen
Bei Oracle wird per Standardeinstellung mit jedem Ausführen einer Query auch eine Transaktion eröffnet ("Begin Transaction"), die beim verlassen des Skripts oder beim beenden der Datenbankverbindung automatisch ausgeführt wird ("Commit Transaction"). Unter Postgres kann man manuell eine Transaction starten ("Begin Transaction") und dann je nach Bedarf ausführen oder zurücksetzen ("Rollback Transaction"). Damit Oracle kein automatisches Ausführen vornimmt, muss dem Ausführungsstatement ein Paramter "OCI_NO_AUTOCOMMIT" mitgegeben werden.
Links:
Keine Kommentare:
Kommentar veröffentlichen