Was ist Dynamisches SQL?

Dynamic SQL ist eine Programmiermethode zum Generieren und Ausführen von Anweisungen zur Laufzeit. Es wird hauptsächlich verwendet, um die allgemeinen und flexiblen Programme zu schreiben, in denen die SQL-Anweisungen zur Laufzeit basierend auf der Anforderung erstellt und ausgeführt werden.,

In diesem Tutorial erfahren Sie-

  • Möglichkeiten zum Schreiben von dynamischem SQL
  • NDS (natives dynamisches SQL) – Sofortige Ausführung
  • DBMS_SQL für dynamisches SQL

Möglichkeiten zum Schreiben von dynamischem SQL

PL/SQL bietet zwei Möglichkeiten zum Schreiben von dynamischem SQL

  1. NDS – Natives dynamisches SQL
  2. DBMS_SQL

NDS (Native Dynamic SQL) – Execute Immediate

Native Dynamic SQL ist der einfachere Weg, um dynamische SQL zu schreiben. Es verwendet den Befehl ‚EXECUTE IMMEDIATE‘, um SQL zur Laufzeit zu erstellen und auszuführen., Um diesen Weg zu verwenden, müssen der Datentyp und die Anzahl der Variablen, die zur Laufzeit verwendet werden sollen, zuvor bekannt sein. Es gibt auch eine bessere Leistung und weniger Komplexität im Vergleich zu DBMS_SQL.

Syntax

EXECUTE IMMEDIATE(<SQL>)
  • Die obige syntax zeigt EXECUTE IMMEDIATE-Befehl.
  • Klausel INTO ist optional und wird nur verwendet, wenn die dynamische SQL eine select-Anweisung enthält, die Werte abruft. Der Variablentyp sollte mit dem Variablentyp der select-Anweisung übereinstimmen.,
  • Klausel USING ist optional und wird nur verwendet, wenn die dynamische SQL eine Bindevariable enthält.

Beispiel 1: In diesem Beispiel werden wir die Daten aus der EMP-Tabelle für emp_no ‚1001‘ mithilfe der NDS-Anweisung abrufen.

Output

Employee Name : XXX Employee Number: 1001 Salary: 15000 Manager ED: 1000

Code-Erklärung:

DBMS_SQL für Dynamische SQL

PL/SQL bieten die DBMS_SQL-Paket, dass ermöglicht Sie zu arbeiten mit dynamischem SQL. Der Prozess zum Erstellen und Ausführen des dynamischen SQL enthält den folgenden Prozess.,

  • CURSOR ÖFFNEN: Das dynamische SQL wird wie ein Cursor ausgeführt. Um die SQL-Anweisung auszuführen, müssen wir den Cursor öffnen.
  • SQL ANALYSIEREN: Der nächste Schritt besteht darin, das dynamische SQL zu analysieren. Dieser Prozess überprüft nur die Syntax und hält die Abfrage für die Ausführung bereit.
  • BIND VARIABLE Values: Der nächste Schritt besteht darin, die Werte für bind Variablen zuzuweisen, falls vorhanden.
  • SPALTE DEFINIEREN: Der nächste Schritt besteht darin, die Spalte anhand ihrer relativen Positionen in der select-Anweisung zu definieren.
  • EXECUTE: Der nächste Schritt besteht darin, die analysierte Abfrage auszuführen.,
  • WERTE ABRUFEN: Der nächste Schritt besteht darin, die ausgeführten Werte abzurufen.
  • CURSOR SCHLIEßEN: Sobald die Ergebnisse abgerufen wurden, sollte der Cursor geschlossen werden.

Beispiel 1: In diesem Beispiel werden wir die Daten aus der EMP-Tabelle für emp_no ‚1001‘ mit der Anweisung DBMS_SQL abrufen.

Ausgang

Employee Name:XXX Employee Number:1001 Salary:15000 Manager ID:1000

Code Erklärung:

  • Codezeile 1-9: Variablendeklaration.,
  • Codezeile 10: Framing der SQL-Anweisung.
  • Codezeile 11: Öffnen des Cursors mit DBMS_SQL.OPEN_CURSOR. Es wird die Cursor-ID zurückgegeben, die geöffnet wird.
  • Codezeile 12: Nachdem der Cursor geöffnet wurde, wird die SQL analysiert.
  • Codezeile 13: Die Bindungsvariable ‚ 1001 ‚wird stattdessen der Cursor-ID‘: empno ‚ zugewiesen.
  • Codezeile 14-17: Definieren des Spaltennamens basierend auf ihrer relativen Position in der SQL-Anweisung. In unserem Fall ist die relative Position (1) emp_name, (2) emp_no (3) Gehalt (4) Manager. Basierend auf dieser Position definieren wir die Zielvariable.,
  • Codezeile 18: Ausführen der Abfrage mit DBMS_SQL.AUSFÜHREN. Es gibt die Anzahl der verarbeiteten Datensätze zurück.
  • Codezeile 19-33: Abrufen der Datensätze mithilfe einer Schleife und Anzeigen derselben.
  • Codezeile 20: DBMS_SQL.FETCH_ROWS ruft einen Datensatz aus den verarbeiteten Zeilen ab. Es kann wiederholt aufgerufen werden, um alle Zeilen abzurufen. Wenn Zeilen nicht abgerufen werden können, wird 0 zurückgegeben, wodurch die Schleife beendet wird.

Zusammenfassung

In diesem Abschnitt haben wir dynamisches SQL und die Möglichkeiten zur Ausführung von DYNAMISCHEM SQL erörtert., Wir haben auch die verschiedenen Schritte bei der Ausführung des dynamischen SQL auf beide Arten gesehen. Wir haben auch die Beispiele gesehen, in denen dasselbe Szenario sowohl auf NDS-als auch auf DBMS_SQL-Weise behandelt wird, um die Ausführung zur Laufzeit durchzuführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.