Oracle und SQL Server weisen eine Reihe von architektonischen und idiomatischen Unterschieden auf, und in der Dokumentation werden verschiedene wichtige Begriffe unterschiedlich verwendet. Es ist einige Jahre her, dass ich das getan habe, aber einige der wichtigsten idiomatischen Unterschiede sind:
Oracle hat keine direkte Entsprechung zu Tempdb. Globale temporäre Tabellen sind beständige Entitäten, und Sie erstellen sie nicht im laufenden Betrieb wie bei einer temporären Tabelle in SQL Server.
Idiomatisches PL / SQL ist viel prozeduraler als idiomatisches T-SQL. Auf der anderen Seite bietet PL / SQL Funktionen zur Unterstützung schneller Cursoroperationen, einschließlich paralleler Schleifenkonstrukte. Häufig werden Cursor-Zwischenergebnisse auf ähnliche Weise wie die Sortiervorgänge verwendet, für die temporäre Tabellen in SQL Server verwendet werden. Lesen Sie nach, wie Sie mit '%' einen Polymorphismus in Cursor-Variablentypen erhalten.
SQL * Plus ist ein Befehlszeilentool, das SQLCMD ähnelt. Bei einer Vanille-Installation ist möglicherweise alles vorhanden, was Sie haben. Wenn Sie ein GUI-Tool wie SSMS benötigen, können Sie SQL Developer oder Tools von Drittanbietern wie TOAD erwerben. TOAD ist ziemlich teuer.
Lernen Sie die Rolle von Rollback-Segmenten (in MVCC von Oracle verwendet) und die Vorzüge des Fehlers "Snapshot zu alt" kennen.
Besorgen Sie sich wenn möglich einen Metalink-Account.
Lesen Sie den Konzeptleitfaden. Es enthält viele nützliche Starterinformationen.
Tablespaces entsprechen in etwa Dateigruppen.
SQL und der in PL / SQL eingebettete SQL-Dialekt sind in Oracle nicht dasselbe.
Oracle hat bis vor kurzem keine rekursiven CTEs unterstützt. Sie können mit CONNECT BY rekursive Abfragen durchführen.
Lesen Sie die Dokumentation für RMAN, um zu erfahren, wie Sie Sicherungen durchführen. Sie können einige nützliche Tricks ausführen, z. B. differenzielle Sicherungen in einer einzigen wiederherstellbaren Sicherung zusammenführen.
Das Systemdatenwörterbuch enthält die Tabellenversionen 'ALL', 'USER' und 'DBA'. 'USER_ ' zeigt Objekte an, die dem Login gehören. 'ALL_ ' zeigt alle Objekte an, die der Login lesen kann. 'DBA_ *' ist eine globale Ansicht, aber Sie müssen über die entsprechenden Berechtigungen verfügen, um dies zu sehen. Sie werden das Datenwörterbuch wahrscheinlich häufiger mit Oracle als mit SQL Server verwenden. Lernen Sie es daher kennen.
In Oracle werden gruppierte Tabellen als indexierte Tabellen bezeichnet. 'Clustereed Tables' in Oracle verweisen auf eine ganz andere Funktion. In Oracle ist eine gruppierte Tabelle eine Funktion, mit der die physische Speicherung von Master- / Detailtabellen auf der Grundlage eines gemeinsamen Schlüssels bereitgestellt werden kann. Die Funktion wird nicht häufig verwendet.
Indizierte Ansichten werden in Oracle als materialisierte Ansichten bezeichnet. Sie arbeiten etwas anders, mit genügend Nuancen, um ihre eigene Frage zu beantworten.
Oracle hat kein Konzept, das einer 'Datenbank' in SQL Server entspricht. In Oracle ist ein Schema nur der Eigentümer einiger Datenbankobjekte.
PL / SQL verfügt über eine explizite Modulstruktur namens "Packages".
Betrachten Sie die Verwendung von Sequenzen anstelle von Identitätsspalten.
Das Abrufen eines Abfrageplans ist in älteren Versionen von Oracle (vor 10g) etwas umständlicher. Sie müssen eine Tabelle (mit dem richtigen Format) erstellen, in die der Plan kopiert werden soll, und dann die Abfrage 'EXPLAIN PLAN' in die Tabelle einfügen, um den Abfrageplan zu erhalten. Sie können den Abfrageplan dann wieder aus der Tabelle entfernen. Jeder und sein Hund haben bevorzugte Fragen zum Abfrageplan. Mache eine Google-Suche und finde eine, dann frig es nach Geschmack. 10g fügte ein Paket mit dem Namen dbms_xplan hinzu , das die Arbeit mit Abfrageplänen vereinfacht.
Wenn Sie Oracle auf einem Unix- oder Linux-Host ausführen, schaden Ihnen Kenntnisse in Shell-Skripten nicht.
Oracle unterstützt autonome Transaktionen - Sie können eine interne autonome Transaktion festschreiben und erwarten, dass sie festgeschrieben bleibt, wenn der übergeordnete Vorgang rückgängig gemacht wird. Geschachtelte SQL Server-Transaktionen sind keine echten geschachtelten Transaktionen und haben unterschiedliche Semantik. Sie können dieses Verhalten mit einer in SQL Server gespeicherten CLR-Prozedur emulieren, indem Sie eine unabhängige Verbindung herstellen und den autonomen Vorgang ausführen.
Oracle wird mit weniger BI-Tools ausgeliefert, obwohl Oracle OLAP-Server, Berichterstellungstools und ETL-Tools verkauft.
Oracle bündelt ein Massenladetool namens SQL * Loader , das in seiner Funktion bcp ähnelt.
Das nächste Äquivalent zu SSIS ist Oracle Warehouse Builder (OWB). Dies ist jedoch ein separates Element, das nicht mit dem Basissystem gebündelt ist.
Oracle erstellt ein Berichterstellungstool namens Oracle Reports , das jedoch nicht im Basissystem enthalten ist. Dies entspricht am ehesten Reporting Services.
Oracle stellt auch ein ROLAP-Tool namens Discoverer her . Dies ist das Produkt, das dem von Oracle erstellten Berichts-Generator am nächsten kommt. Neuere Versionen ('Drake') unterstützen die OLAP-Engine von Oracle.
Oracle hatte früher ein OLAP-Produkt namens Express. Irgendwann bauten sie es in die zentrale Oracle DBMS-Engine ein und speicherten ihre nativen Datenstrukturen in undurchsichtigen Blobs. Es ist nicht vollständig mit Express kompatibel und verfügt über eine eigenständige Schnittstelle, die von OLAP-Front-End-Tools von Drittanbietern nur sehr wenig unterstützt wird.
Oracle BI Enterprise Edition war früher Siebel Analytics. Dies hat einige OLAP-Funktionen, aber ich bin damit nicht vertraut. Vielleicht möchte jemand, der es benutzt hat, einen Kommentar abgeben. Ohne direkt zuzugeben, dass Siebel ein völlig separates Produkt von seinem eigenen BI-Tool ist, gab Oracle an, dass es keinen Upgrade-Pfad von Oracle BI Standard Edition zu Enterprise Edition gibt. Beachten Sie, dass sowohl die Standard- als auch die Enterprise BI-Suite separate Produkte sind und nicht im Basissystem enthalten sind.
In der Praxis ist Essbase (ehemals Hyperion) der von Oracle vertriebene SSAS am nächsten . Dies ist ein separates Produkt, das nicht im Basissystem enthalten ist.
Es gibt wahrscheinlich andere Dinge, an die ich bei OTOH nicht denken kann. Ich werde sie hinzufügen, wenn ich an sie denke.