2016-06-29 5 views
0

Erstellen Sie einen anonymen PL/SQL-Block, der anhand eines SQL-Parameters nach einem Mitarbeiter sucht (z. B. & Variable), auf den der Benutzer mit einem gültigen Nachnamen in der Tabelle EMPLOYEES antwortet (dh König, Kochhar oder De Haan, oder Hunold oder Ernst, usw. .... Wenn der Mitarbeiter last_name in der Tabelle EMPLOYEES vorhanden ist, fügen Sie in die Tabelle OUTPUT_LOG die folgende Zeichenfolge ein: 'Employee is is Found'. Testen Sie Ihren PL/SQL-Block, indem Sie den Inhalt der OUTPUT_LOG-Tabelle überprüfen. Sie sollten die Zeichenfolge finden, die Sie in die Tabelle OUTPUT_LOG eingefügt haben.Wie überprüft man, ob eine Person existiert und dann mit pl/sql in eine andere Tabelle einfügt?

Mitarbeiter Tabelle hat diese Spalten EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, GEHALT, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID

output_log Tabelle nur eine hat Spalte VARCHAR2 (250) genannt Daten-und ID-Spalte als Primärschlüssel

Ich kämpfe um fi Überprüfen Sie, ob der Name in der Tabelle vorhanden ist. Ich dachte über

begin 
SELECT e.LAST_NAME as LAST_NAME, o.data 
INTO OUTPUT_LOG 
FROM EMPLOYEES as e, OUTPUT_LOG as O 
WHERE e.employee_id = o.id 
end; 

mit, aber ich glaube nicht, dass es klug wäre, und Sinn so EMPLOYEES TABLE

Antwort

0

zu tun, macht Da dies eine Hausaufgabe Frage zu sein scheint, ich werde es nicht löst alle für Sie aber (um Ihnen auf Ihrem Weg zu helfen) können Sie einfach SELECT ... INTO verwenden und wenn eine Zeile nicht gefunden wird, wird eine NO_DATA_FOUND Ausnahme ausgelöst, die Sie fangen können (und diese verwenden, um die INSERT zu umgehen). So etwas wie das:

DECLARE 
    p_found NUMBER(1,0); 
BEGIN 
    SELECT 1 
    INTO p_found 
    FROM Employees 
    WHERE ROWNUM = 1 
    AND last_name = 'King'; -- replace with your where condition 

    -- then do the insert here (since it will only reach this point if 
    -- a row was found). 
EXCEPTION 
    WHEN NO_DATA_FOUND THEN 
    NULL; 
END; 
/
+1

danke, dass nur alle Informationen, die ich brauche, da ich die Informationen auf eigene Faust herausfinden will. – user2353565