Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erstellen Sie eine gespeicherte Oracle-Prozedur, die bestimmte Entitäten sowie alle Entitäten zurückgeben kann

Hier ist ein einfaches Beispiel:

Betrachten Sie die Tabelle:PERSONS (person_id, name)

Diese Funktion gibt einen Cursor zurück, der entweder einen Datensatz oder alle Datensätze zurückgibt, wenn kein Argument angegeben wird:

CREATE FUNCTION get_person
   (person_id IN persons.person_id%TYPE := NULL)
   RETURN SYS_REFCURSOR IS
   rc SYS_REFCURSOR;
BEGIN
   OPEN rc FOR
     SELECT *
     FROM   persons p
     WHERE  p.person_id = get_person.person_id
     OR     get_person.person_id IS NULL;
   RETURN rc;
END;