In diesem Oracle-Lernprogramm wird erläutert, wie Sie create and drop procedures in Oracle/PLSQL mit Syntax und Beispielen.
Create Procedure
Wie in anderen Sprachen können Sie in Oracle eigene Prozeduren erstellen.
Syntax
Die Syntax zum Erstellen einer Prozedur in Oracle lautet:
[ (parameter [,parameter]) ]
IS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [procedure_name];
Beim Erstellen einer Prozedur oder Funktion können Sie Parameter definieren. Es gibt drei Arten von Parametern, die deklariert werden können:
IN - Der Parameter kann von der Prozedur oder Funktion referenziert werden. Der Wert des Parameters kann von der Prozedur oder Funktion nicht überschrieben werden.
OUT - Der Parameter kann nicht von der Prozedur oder Funktion referenziert werden, der Wert des Parameters kann jedoch von der Prozedur oder Funktion überschrieben werden.
IN OUT - Der Parameter kann von der Prozedur oder Funktion referenziert werden, und der Wert des Parameters kann von der Prozedur oder Funktion überschrieben werden.
Beispiel
Sehen wir uns ein Beispiel für das Erstellen einer Prozedur in Oracle an.
Das folgende ist ein einfaches Beispiel für eine Prozedur:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
CREATE OR REPLACE Procedure UpdateCourse ( name_in IN varchar2 ) IS cnumber number; cursor c1 is SELECT course_number FROM courses_tbl WHERE course_name = name_in; BEGIN open c1; fetch c1 into cnumber; if c1%notfound then cnumber := 9999; end if; INSERT INTO student_courses ( course_name, course_number ) VALUES ( name_in, cnumber ); commit; close c1; EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM); END; |
Diese Prozedur wird UpdateCourse genannt. Es hat einen Parameter namens name_in. Die Prozedur sucht die course_number basierend auf course_name. Wenn keine Übereinstimmung gefunden wird, wird die course_number standardmäßig auf 99999 festgelegt. Anschließend wird ein neuer Datensatz in die Tabelle student_courses eingefügt.
Drop Procedure
Nachdem Sie Ihre Prozedur in Oracle erstellt haben, müssen Sie sie möglicherweise aus der Datenbank entfernen.
Syntax
Die Syntax für das Ablegen einer Prozedur in Oracle lautet:
procedure_name
Der Name der Prozedur, die Sie löschen möchten.
Beispiel
Sehen wir uns ein Beispiel für das Löschen einer Prozedur in Oracle an.
Beispielsweise:
1 |
DROP PROCEDURE UpdateCourse; |
In diesem Beispiel wird die Prozedur mit dem Namen UpdateCourse gelöscht.