Heim > Datenbank > Oracle > Hauptteil

So tätigen Sie einen Aufruf mit Parametern in einer gespeicherten Oracle-Prozedur

PHPz
Freigeben: 2023-04-25 09:29:30
Original
1940 Leute haben es durchsucht

Die gespeicherte Prozedur von Oracle ist eine vorkompilierte, wiederverwendbare SQL-Anweisung, die in der Datenbank gespeichert wird und jederzeit ausgeführt und aufgerufen werden kann. In gespeicherten Oracle-Prozeduren können Sie Parameter verwenden, um einen flexibleren Aufruf zu erreichen. In diesem Artikel wird erläutert, wie Parameter in gespeicherten Oracle-Prozeduraufrufen verwendet werden.

Erstellen Sie eine gespeicherte Prozedur und definieren Sie Parameter.

In Oracle-Datenbanken erfordert die Erstellung einer gespeicherten Prozedur die Verwendung der Anweisung CREATE PROCEDURE. Hier ist ein einfaches Beispiel: CREATE PROCEDURE 语句。以下是一个简单的例子:

CREATE OR REPLACE PROCEDURE get_employee_details(
    employee_id IN NUMBER,
    employee_name OUT VARCHAR2,
    hire_date OUT DATE,
    salary OUT NUMBER
)
AS
BEGIN
    SELECT e.employee_name, e.hire_date, e.salary 
    INTO employee_name, hire_date, salary
    FROM employees e
    WHERE e.employee_id = employee_id;
END;
Nach dem Login kopieren

上面的代码创建了一个名为 get_employee_details 的存储过程,该存储过程具有四个参数:employee_id(IN 类型的输入参数)、employee_namehire_datesalary(OUT 类型的输出参数)。存储过程的作用是根据 employee_id 参数查询员工的详细信息,并将查询结果存储在输出参数中。

调用存储过程

当存储过程创建成功后,就可以使用 EXECUTE 语句来调用它。以下是调用存储过程的代码:

DECLARE
    emp_name VARCHAR2(50);
    emp_hire_date DATE;
    emp_salary NUMBER;
BEGIN
    get_employee_details(101, emp_name, emp_hire_date, emp_salary);
    DBMS_OUTPUT.PUT_LINE('Employee Name : ' || emp_name);
    DBMS_OUTPUT.PUT_LINE('Hire Date : ' || emp_hire_date);
    DBMS_OUTPUT.PUT_LINE('Salary : ' || emp_salary);
END;
Nach dem Login kopieren

在上面的代码中,首先声明三个变量 emp_nameemp_hire_dateemp_salary,然后通过调用存储过程 get_employee_details 并传入参数 101,同时将输出参数赋值给上述声明的变量。最后,使用 DBMS_OUTPUT 包中的 PUT_LINE 函数输出查询结果。

需要注意的是,DECLAREBEGIN 语句是必须的,因为它们表示了一个代码块的起始和结束。在代码块中,可以声明变量、调用存储过程、执行各种 SQL 语句等。

参数的类型

在定义存储过程的参数时,可以使用以下类型:

  • IN:表示输入参数,这些参数用于向存储过程中传递值。
  • OUT:表示输出参数,这些参数用于从存储过程中返回值。
  • IN OUT:表示既是输入参数又是输出参数。这些参数既能够向存储过程中传递值,又能从存储过程中返回值。

除了上述类型外,还可以使用 NOCOPYrrreee

Der obige Code erstellt eine gespeicherte Prozedur mit dem Namen get_employee_details, die vier Parameter hat: employee_id (Eingabeparameter vom Typ IN), employee_name , hire_date und salary (Ausgabeparameter vom Typ OUT). Die Funktion der gespeicherten Prozedur besteht darin, die detaillierten Informationen des Mitarbeiters basierend auf dem Parameter employee_id abzufragen und die Abfrageergebnisse im Ausgabeparameter zu speichern.

Gespeicherte Prozedur aufrufen

Nachdem die gespeicherte Prozedur erfolgreich erstellt wurde, können Sie sie mit der Anweisung EXECUTE aufrufen. Das Folgende ist der Code, der die gespeicherte Prozedur aufruft:
    rrreee
  • Deklarieren Sie im obigen Code zunächst die drei Variablen emp_name, emp_hire_date und emp_salary , und dann Durch Aufrufen der gespeicherten Prozedur get_employee_details und Übergabe des Parameters 101 werden die Ausgabeparameter den oben deklarierten Variablen zugewiesen. Verwenden Sie abschließend die Funktion PUT_LINE im Paket DBMS_OUTPUT, um die Abfrageergebnisse auszugeben.
  • Es ist zu beachten, dass die Anweisungen DECLARE und BEGIN notwendig sind, da sie den Anfang und das Ende eines Codeblocks darstellen. Im Codeblock können Sie Variablen deklarieren, gespeicherte Prozeduren aufrufen, verschiedene SQL-Anweisungen ausführen usw.
  • Parametertypen
Beim Definieren von Parametern einer gespeicherten Prozedur können Sie die folgenden Typen verwenden:

IN: stellt Eingabeparameter dar, die zur Übergabe von Werten an die gespeicherte Prozedur verwendet werden .

🎜OUT: Stellt Ausgabeparameter dar, die zur Rückgabe von Werten aus gespeicherten Prozeduren verwendet werden. 🎜🎜IN OUT: Zeigt an, dass es sich sowohl um einen Eingabeparameter als auch um einen Ausgabeparameter handelt. Diese Parameter können sowohl Werte an gespeicherte Prozeduren übergeben als auch Werte von diesen zurückgeben. 🎜🎜🎜Zusätzlich zu den oben genannten Typen können Sie auch das Schlüsselwort NOCOPY verwenden, um Parameter zu definieren, wodurch das Kopieren des Speichers während der Parameterübertragung vermieden und dadurch die Ausführungseffizienz verbessert werden kann. 🎜🎜Anwendungsszenarien🎜🎜In der tatsächlichen Entwicklung ist der Parameteraufruf gespeicherter Prozeduren sehr verbreitet und kann in mehreren Szenarien angewendet werden. Im Folgenden sind einige typische Anwendungsszenarien aufgeführt: 🎜🎜🎜Parameterisierte Abfrage: In der gespeicherten Prozedur können Eingabeparameter definiert werden, sodass die gespeicherte Prozedur unterschiedliche Abfrageanweisungen basierend auf unterschiedlichen Eingabeparametern ausführen und so parametrisierte Abfragen realisieren kann. 🎜🎜Batch-Betrieb: Im gespeicherten Prozess können Sie Eingabe- und Ausgabeparameter definieren, sodass der gespeicherte Prozess Batch-Vorgänge basierend auf den Eingabeparametern ausführen und gleichzeitig die Verarbeitungsergebnisse in den Ausgabeparametern speichern kann, wodurch die Kosten reduziert werden Anzahl der Folgeoperationen. 🎜🎜Transaktionsverarbeitung: In der gespeicherten Prozedur können Eingabeparameter verwendet werden, um die Übermittlung oder das Rollback der Transaktion zu steuern und so eine flexiblere Transaktionsverarbeitungsmethode zu erreichen. 🎜🎜🎜Zusammenfassung🎜🎜In diesem Artikel wird die Methode zur Verwendung von Parameteraufrufen in gespeicherten Oracle-Prozeduren vorgestellt. Typischerweise können parametrisierte Aufrufe gespeicherter Prozeduren die Wiederverwendbarkeit und Flexibilität von Code erheblich verbessern und Anwendungen mit flexibleren Funktionen ausstatten. Daher sollten in der tatsächlichen Entwicklung parametrisierte Aufrufe gespeicherter Prozeduren vollständig genutzt werden, um die Systemleistung und Wartbarkeit zu verbessern. 🎜

Das obige ist der detaillierte Inhalt vonSo tätigen Sie einen Aufruf mit Parametern in einer gespeicherten Oracle-Prozedur. 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