Orakel - welche Aussagen müssen festgelegt werden?
Was sind die Liste der Anweisungen, die müssen verpflichtet werden, bevor weitere Maßnahmen auf dem Tisch, um zu vermeiden eine Sperre? Ich spreche nicht über die volle Transaktionen mit mehreren Anweisungen und Transaktionsintegrität; stattdessen beziehe ich mich auf einzelne Aussagen.
Weiß ich einfügen sollte verpflichtet werden, aber abschneiden ist ein autocommit. Was ist die vollständige Liste von Anweisungen, dass müssen begangen werden?
Müssen begangen werden (starter-Liste):
UPDATE
INSERT
DELETE
Kommentar zu dem Problem
truncate
entfernt die Daten direkt, ohne Sie zu kopieren in die Rollback-Tablespace. Ist eine DDL-Anweisung. tut DCL zu engagieren? ie grant + widerrufen
Merge. Wählen Sie auch für die Aktualisierung dauert sperrt, obwohl er nicht etwas ändern.
@toop: soweit ich in der Lage gewesen, zu erzählen, Oracle Klumpen DCL mit DDL. Als DDL es hat zwei implizite commits vor und nach der Ausführung der Anweisung.
Ich war überrascht, dass
grant
erfordern commit
! InformationsquelleAutor der Frage toop | 2012-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
DML (Data Manipulation Language) Befehle werden müssen engagierte/Rollback. Hier ist eine Liste dieser Befehle.
InformationsquelleAutor der Antwort rics
In der mechanischen Bedingungen ein COMMIT macht eine Transaktion. Das ist eine Transaktion ist alle Tätigkeit (eine oder mehrere DML-Anweisungen), die Auftritt, zwischen zwei COMMIT-Anweisungen (oder ROLLBACK).
In Oracle eine DDL-Anweisung ist eine Transaktion in seinem eigenen Recht einfach, da ein implizites COMMIT ausgegeben wird, bevor die Anweisung ausgeführt und danach auch wieder. TRUNCATE ist ein DDL-Befehl, so dass es nicht eine explizite commit-da ruft es führt einen impliziten commit.
Aus einer system-design-Perspektive eine Transaktion ist eine business unit der Arbeit. Es kann bestehen aus einer einzelnen DML-Anweisung oder mehrere von Ihnen. Es spielt keine Rolle: nur vollständige Transaktionen erfordern BEGEHEN. Es hat buchstäblich keinen Sinn macht, COMMIT, es sei denn, oder bis wir abgeschlossen haben eine ganze business unit der Arbeit.
Dies ist ein wichtiges Konzept. Begeht nicht nur sperren freizugeben. In Oracle Sie auch die Sperrklinken, wie die Transaktion Interessierten-Liste. Hat dies eine Auswirkung, da der Oracle-read consistency-Modell. Ausnahmen wie
ORA-01555: SNAPSHOT TOO OLD
oderORA-01002: FETCH OUT OF SEQUENCE
auftreten, aufgrund von unangemessenen verpflichtet. Folglich ist es entscheidend für unsere Geschäfte zu hängen, auf die Schlösser so lange, wie Sie Sie brauchen.InformationsquelleAutor der Antwort APC
DML einsetzen oder rollbacked. DDL nicht.
http://www.orafaq.com/faq/what_are_the_difference_between_ddl_dml_and_dcl_commands
Können Sie schalten Sie " auto-commit auf und das ist wieder nur für DML.
DDL sind nie Teil der Transaktionen und daher gibt es nichts, wie eine explizite commit/rollback.
truncate
ist DDL und daher verpflichtet stillschweigend.Bearbeiten
Ich habe zu sagen, sorry. Wie @DCookie und @APC angegeben, ist in den Kommentaren gibt es sth wie implizite commits für DDL. Sehen Sie hier eine Frage auf Fragen Tom.
Dies steht im Gegensatz zu dem, was ich gelernt habe und ich bin immer noch ein wenig neugierig.
InformationsquelleAutor der Antwort Fabian Barney
Und ein wesentlicher Punkt, der - obwohl TRUNCATE TABELLE scheint wie ein DELETE ohne WHERE-Klausel, TRUNCATE ist nicht DML, es ist DDL. LÖSCHEN erfordert ein COMMIT, aber ABSCHNEIDEN nicht.
InformationsquelleAutor der Antwort John Flack