Korrekte Art zu überprüfen, ob eine Zeile in der Tabelle [pl / sql block] existiert

Wurde ich schriftlich einige Aufgaben gestern und es fiel mir auf, dass ich nicht wirklich weiß, DIE ANGEMESSENE und AKZEPTIERTE Art und Weise zu prüfen, ob Zeile existiert in der Tabelle, wenn ich Sie mit pl/sql.

Beispiele für die sake-let ' s benutzen Sie die Tabelle

PERSON(ID, Name); 

Natürlich habe ich kann nicht (es sei denn, es gibt einige geheime Methode) so etwas wie:

BEGIN 
  IF EXISTS SELECT id FROM person WHERE ID = 10; 
    -- do things when exists
  ELSE
    -- do things when doesn't exist
  END IF;
END;

Also mein standard-Weg, es zu lösen war:

DECLARE
  tmp NUMBER;
BEGIN 
  SELECT id INTO tmp FROM person WHERE id = 10; 
  --do things when record exists
EXCEPTION
  WHEN no_data_found THEN
  --do things when record doesn't exist
END; 

Aber ich weiß nicht, ob es angenommen wird, ist Weg, es zu tun, oder ob es irgendeine bessere Möglichkeit, zu überprüfen, würde ich wirklich apprieciate, wenn jemand könnte teilen Ihre Weisheit mit mir 🙂

Cheers.

Kommentar zu dem Problem
Warum wollen Sie das tun? Was ist der echte ein problem, das Sie lösen möchten. Kommentarautor: a_horse_with_no_name
Ich habe keine bestimmten Problem (im moment zumindest), es fiel mir auf, dass, Wenn ich hatte zu tun, einige ernsthafte Aufgabe für echte Firma würde ich nicht wissen, ob es erlaubt die Verwendung dieser trick mit Ausnahme ist oder nicht. Kommentarautor: devBem
Es hängt alles davon ab, was Sie tun möchten. Wenn Sie wollen update/insert Zeug, je nachdem, ob die Zeile gibt es eine merge ist wohl die bessere alternative. Ich denke, der kann andere Wege, um damit umzugehen, aber das hängt davon ab, was genau das problem ist. Kommentarautor: a_horse_with_no_name
pl/sql, falls vorhanden Abhilfe - stackoverflow.com/questions/13217600/... Kommentarautor: Donnie

InformationsquelleAutor der Frage devBem | 2014-01-15

Schreibe einen Kommentar