Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да създадете съхранена процедура на Oracle, която може да връща конкретни обекти, както и всички обекти

Ето прост пример:

Разгледайте таблицата:PERSONS (person_id, name)

Тази функция ще върне курсор, който връща или един запис, или всички записи, ако не е предоставен аргумент:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql Подреждане по няколко колони

  2. Заявка за каскадно изтриване

  3. Как да покажа 0, когато няма намерен ред

  4. DBMS_METADATA и други пакети са невалидни

  5. listnagg функция?