sql >> Database >  >> RDS >> Oracle

Hoe een Oracle opgeslagen procedure te creëren die zowel specifieke entiteiten als alle entiteiten kan retourneren?

Hier is een eenvoudig voorbeeld:

Beschouw de tabel:PERSONS (person_id, name)

Deze functie retourneert een cursor die één record teruggeeft, of alle records als er geen argument is opgegeven:

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;


  1. PL/SQL-proces:probleem met formulering

  2. Geen database geselecteerde fout, zelfs niet nadat een db is geselecteerd

  3. MySQL DROP-DATABASE

  4. Rails converteert de tijdzone niet (PostgreSQL)