Es gibt dynamische Anweisungen in Oracle; dynamische Anweisungen beziehen sich auf SQL-Anweisungen, die zur Kompilierungszeit unsicher sind. Der Compiler verarbeitet den dynamischen Anweisungsteil nicht, sondern erstellt nur dynamisch Anweisungen, führt eine Syntaxanalyse für die Anweisungen durch führt sie aus. Die Syntax lautet „EXECUTE IMMEDIATE dynamische SQL-Anweisungszeichenfolge INTO-Klausel USING-Klausel“.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle Version 12c, Dell G3-Computer.
Das sogenannte dynamische SQL bedeutet, dass die SQL-Anweisung unsicher ist, wenn der PL/SQL-Block kompiliert wird, z. B. unterschiedliche Operationen basierend auf verschiedenen Benutzereingabeparametern durchgeführt. Der Compiler verarbeitet den dynamischen Anweisungsteil nicht, sondern erstellt die Anweisung nur dynamisch, wenn das Programm ausgeführt wird, führt eine Syntaxanalyse der Anweisung durch und führt die Anweisung aus. Dynamisches SQL in ORACLE kann über lokale dynamische SQL-Befehle oder über das DBMS_SQL-Paket ausgeführt werden.
Normalerweise kann in der Entwicklung einfaches lokales dynamisches SQL das Problem lösen. Im Folgenden werde ich andere Methoden verwenden, um es zu erreichen. Die Syntax zum Ausführen von lokalem dynamischem SQL lautet wie folgt:EXECUTE IMMEDIATE dynamic_sql_string [INTO define_variable_list] [USING bind_argument_list];wobei: „dynamic_sql_string“ die Zeichenfolge der dynamischen SQL-Anweisung ist. Die INTO-Klausel wird verwendet, um den durch die SELECT-Anweisung ausgewählten Datensatzwert zu akzeptieren. Die USING-Klausel wird verwendet, um gebundene Eingabeparametervariablen zu akzeptieren. Dynamische SQL-Anweisungen sind von Programmen oder gespeicherten Prozeduren generierte SQL-Anweisungen. Das Merkmal solcher Anweisungen ist, dass sie nicht einfach ausgeführt werden können. Da es sich nicht um einen Standard handelt und sich ändernde Komponenten enthält, bietet ORACLE einen Modus zum Ausführen dynamischer SQL-Anweisungen: EXECUTE IMMEDIATEDie Bedeutung dieses Satzes besteht darin, ihn sofort auszuführen, ohne zuvor eine Syntaxprüfung durchzuführen. Während des Ausführungsprozesses können Logikfehler auftreten und werden über Fehlerinterrupts behandelt. Das Beispiel sieht wie folgt aus:
Dieser Code führt zuerst ein erstelltes dynamisches SQL aus und führt dann die SELECT-Anweisung mit Parametern aus. Die EXECUTE IMMEDIATE-Anweisung kann nur zur Verarbeitung von SQL-Anweisungen verwendet werden, die eine einzelne Zeile zurückgeben, oder zur Verarbeitung von dynamischem SQL, das mehrere Zeilen zurückgibt, muss die OPEN...FOR-Anweisung des REF-Cursors verwendet werden.
Empfohlenes Tutorial: „Oracle Video Tutorial
“Das obige ist der detaillierte Inhalt vonGibt es dynamische Anweisungen in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!