Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.94 KB | None | 0 0
  1. CREATE OR REPLACE
  2. FUNCTION PERSON_ID
  3. (
  4.   searchString IN VARCHAR2  
  5. ) RETURN NUMBER IS
  6. id person.person%TYPE;
  7. too_many EXCEPTION;
  8. not_found EXCEPTION;
  9. CURSOR get_person_id IS
  10. SELECT person FROM person WHERE name LIKE searchString;
  11. CURSOR get_person_id2 IS
  12. SELECT person FROM person WHERE realname LIKE searchString;
  13. BEGIN
  14.   OPEN get_person_id;
  15.   IF get_person_id%NOTFOUND THEN
  16.     OPEN get_person_id2;
  17.     IF get_person_id%NOTFOUND THEN
  18.       RAISE not_found;
  19.     ELSIF get_person_id%ROWCOUNT > 1 THEN
  20.       RAISE too_many;
  21.     ELSE
  22.       FETCH get_person_id2 INTO id;
  23.     END IF;
  24.   ELSIF get_person_id%ROWCOUNT > 1 THEN
  25.     RAISE too_many;
  26.   ELSE
  27.     FETCH get_person_id INTO id;
  28.   END IF;
  29.   RETURN id;
  30. EXCEPTION
  31. WHEN too_many THEN
  32. DBMS_OUTPUT.put_line('Fehler: Es wurden mehrere passende Einträge gefunden.');
  33. WHEN not_found THEN
  34. DBMS_OUTPUT.put_line('Fehler: Es wurde kein passender Eintrag gefunden.');
  35. END PERSON_ID;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement