Heim > Datenbank > Oracle > Hauptteil

Die gespeicherte Oracle-Prozedur gibt eine Ergebnismenge zurück

WBOY
Freigeben: 2023-05-11 11:33:36
Original
3077 Leute haben es durchsucht

Oracle ist eines der am weitesten verbreiteten relationalen Datenbankverwaltungssysteme der Welt. Es bietet die Vorteile einer guten Stabilität, Skalierbarkeit und Sicherheit. Darüber hinaus bietet Oracle auch eine gespeicherte Prozedurfunktion, eine Art Datenbankverwaltung System. Eine Sammlung einer Reihe von SQL-Anweisungen, die in einem Programm ausgeführt werden, dessen Syntax der von PL/SQL ähnelt. Gespeicherte Prozeduren werden hauptsächlich verwendet, um sich wiederholenden Code zu vereinfachen, die Wiederverwendbarkeit von Code zu verbessern, die Datenverarbeitung zu beschleunigen usw. In diesem Artikel erfahren Sie, wie Sie gespeicherte Prozeduren in Oracle schreiben und Ergebnismengen zurückgeben.

1. Grundlagen gespeicherter Prozeduren

In Oracle ist eine gespeicherte Prozedur eine Sammlung von SQL-Anweisungen, die Abfragen, Einfügungen, Aktualisierungen, Löschungen und andere Datenbankoperationen ausführen können. In Oracle können gespeicherte Prozeduren in der PL/SQL-Sprache geschrieben werden. Eine gespeicherte Prozedur ist ein Datenbankobjekt, das mit der CREATE PROCEDURE-Anweisung erstellt wird. Darüber hinaus können Sie auch die CREATE FUNCTION-Anweisung verwenden, um eine gespeicherte Prozedur vom Typ Funktion zu erstellen. Die gespeicherte Prozedur vom Funktionstyp gibt einen Wert zurück, während die gespeicherte Prozedur keinen Wert zurückgibt, aber der OUT-Parameter darin verwendet werden kann, um das Ergebnis zurückzugeben. Mit gespeicherten Prozeduren können Benutzer Parameter anpassen und so die Komplexität des Datenzugriffs und der Datenverarbeitung verringern.

Vorteile gespeicherter Prozeduren:

  1. Repetitiven Code reduzieren
  2. Entlastung der Datenbank und des Netzwerks reduzieren
  3. #🎜 🎜 #Lesbarkeit und Wartbarkeit des Codes verbessern
  4. Datenverarbeitungsgeschwindigkeit verbessern
Nachteile gespeicherter Prozeduren:

#🎜 🎜 #Speichernutzung erhöhen
  1. Erhöhte Entwicklungs- und Testzeit
  2. Höhere Programmierkomplexität
  3. 2 Syntax gespeicherter Prozeduren# 🎜🎜#
Gespeicherte Prozeduren bestehen hauptsächlich aus DECLARE-, BEGIN-, EXCEPTION- und END-Anweisungen, wobei die DECLARE-Anweisung zum Deklarieren von Variablen, Cursorn und Datensatztypen verwendet wird. Die BEGIN-Anweisung enthält den Hauptausführungscode der gespeicherten Prozedur, der zur Implementierung der spezifischen Funktionen der gespeicherten Prozedur verwendet wird. Sie kann Kontrollstrukturen wie IF, LOOP, WHILE usw. und SQL-Anweisungen enthalten. Die EXCEPTION-Anweisung wird zur Behandlung von Ausnahmen in Operationen verwendet. Die END-Anweisung gibt das Ende der gespeicherten Prozedur an.

Die Syntax der gespeicherten Prozedur lautet wie folgt:

PROZEDUR ERSTELLEN ODER ERSETZEN, Prozedurname (IN_parameter IN data_type, OUT_parameter OUT data_type)

IS

DECLARE #🎜 🎜# Variablenname Datentyp: = Wert; Parameterbeschreibung:


1. PROZEDUR ERSTELLEN ODER ERSETZEN: Erstellen oder ersetzen Sie die gespeicherte Prozedur.

2. Der Name der gespeicherten Prozedur muss eindeutig sein.

3. IN_parameter: Der Name des Eingabeparameters der gespeicherten Prozedur, der ein einzelner Parameter oder mehrere Parameter sein kann.

4. data_type: Der Datentyp von IN_parameter

5. Der Name des Ausgabeparameters der gespeicherten Prozedur. Kann den Datensatz- oder Cursortyp zurückgeben.

6. Wird zum Deklarieren von Variablen, Cursorn, Datensatztypen usw. verwendet.

7. Variablenname: der Name der Variablen

8. Wert: die Zuweisung der Variablen

9: enthält die Hauptausführung Code der gespeicherten Prozedur, der zum Implementieren der spezifischen Funktionen der gespeicherten Prozedur verwendet wird.

10. Wird zur Behandlung von Ausnahmen während des Betriebs verwendet.

11. Die gespeicherte Prozedur wird beendet.

3. Die gespeicherte Prozedur gibt die Ergebnismenge zurück.

In Oracle kann die gespeicherte Prozedur die Ergebnisse über den OUT-Parameter zurückgeben. In der gespeicherten Prozedur müssen wir die Cursorvariable verwenden, um die Abfrageergebnismenge zu lesen, und das Ergebnis dann an den OUT-Parameter übergeben. Die spezifischen Schritte sind wie folgt:

1 Definieren Sie gespeicherte Prozeduren und OUT-Parameter

PROZEDUR ERSTELLEN ODER ERSETZEN procedure_name(p_out_parameter OUT SYS_REFCURSOR)

IS

BEGIN

--Ausführungsanweisung

OPEN p_out_parameter FOR SELECT Column1, Column2 FROM Table_name;

END;

Beschreibung:

Das oben Gespeicherte Prozedurdefinition Es gibt einen OUT-Parameter p_out_parameter, der Datentyp dieses Parameters ist SYS_REFCURSOR.

2. Gespeicherte Prozedur aufrufen

DECLARE
type_name SYS_REFCURSOR;
BEGIN
procedure_name(type_name);

END;# 🎜🎜#

Beschreibung:

Verwenden Sie das Schlüsselwort DECLARE, um einen Cursorvariablentypnamen zu definieren, dessen Datentyp SYS_REFCURSOR ist.

Rufen Sie die gespeicherte Prozedur procedure_name auf und übergeben Sie den Parameter type_name an den OUT-Parameter p_out_parameter. Nachdem die Ausführung der gespeicherten Prozedur abgeschlossen ist, werden die zurückgegebenen Abfrageergebnisse in der Cursorvariablen Typname gespeichert.

3. Verwenden Sie Cursorvariablen, um Abfrageergebnisse zu lesen
type_name SYS_REFCURSOR;
columns1_value VARCHAR2(50); 50);
BEGIN
procedure_name(type_name);

FETCH type_name INTO column1_value, column2_value; 
EXIT WHEN type_name%NOTFOUND; 
--使用查询结果进行其他操作 
Nach dem Login kopieren

END LOOP;

END;#🎜🎜 #

Beschreibung:

Der obige Code verwendet die Cursorvariable type_name, um die Abfrageergebnismenge Zeile für Zeile zu lesen, und speichert die Werte für Spalte1 und Spalte2 jeder Zeile in den Variablen Column1_value und Column2_value.

Durch LOOP- und FETCH-Anweisungen können Cursorvariablen die Abfrageergebnismenge Zeile für Zeile lesen. Wenn die letzte Zeile abgefragt wird, gibt die Bedingung type_name%NOTFOUND TRUE zurück und die Schleife wird beendet. Verwenden Sie abschließend die CLOSE-Anweisung, um den Cursor zu schließen.

4. Zusammenfassung

Gespeicherte Prozeduren sind effektive Datenverarbeitungstools in Oracle, die Datenvorgänge optimieren können, indem sie Codeduplizierung reduzieren, die Wiederverwendbarkeit von Code verbessern und die Datenverarbeitung beschleunigen. Wenn Sie eine gespeicherte Prozedur schreiben, müssen Sie mit deren grundlegender Syntax und Parameterregeln vertraut sein und wissen, wie ein Abfrageergebnissatz zurückgegeben wird. Die Verwendung gespeicherter Prozeduren kann die Leistung und Sicherheit der Datenbank erheblich verbessern und ist eine der notwendigen Fähigkeiten für Oracle-Datenbankentwickler.

Das obige ist der detaillierte Inhalt vonDie gespeicherte Oracle-Prozedur gibt eine Ergebnismenge zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage