Ich versuche, die folgenden zu tun, indem Sie einen Cursor durch den Nachnamen des MitarbeitersMit Cursor in einer Funktion zum Namen Ausgeben ändert
erstellen PLSQL Funktion ändern verwenden, die, wenn sie auf einer SQL-Anweisung ausgeben würde, die letzten Namen verwendet aller Mitarbeiter in der Tabelle Mitarbeiter nach folgenden Logik:
- Wenn der Name des Mitarbeiters KING ist, sollte die Funktion Ausgabe als LION.
- Wenn der Name des Mitarbeiters FORD ist, sollte die Funktion Ausgang als CAR
- Wenn der Name des Mitarbeiters MILLER ist, dann ist die Funktion sollte es zu BEER ändern.
Andernfalls sollte der Name so ausgegeben werden, wie er in der Tabelle employees aufgeführt ist.
Bisher habe ich dies:
set serveroutput on;
CREATE OR REPLACE FUNCTION changeName (lastname_in IN VARHCAR2)
RETURN c_emp_record
IS
declare
CURSOR c_emp_record IS
SELECT last_name FROM employees;
v_emp_record c_emp_record%ROWTYPE;
begin
OPEN c_emp_record;
DBMS_OUTPUT.PUT_LINE('LastName'||' ');
LOOP
FETCH c_emp_record into v_emp_record;
EXIT WHEN c_emp_record%NOTFOUND;
if c_emp_record IN ('%KING%') THEN
DBMS_OUTPUT.PUT_LINE(' LION');
elsif c_emp_record LIKE '%FORD%' THEN
DBMS_OUTPUT.PUT_LINE(' CAR');
ELSIF c_emp_record LIKE '%MILLER%' THEN
DBMS_OUTPUT.PUT_LINE('BEER');
ELSE
DBMS_OUTPUT.PUT_LINE(v_emp_record.last_name || 'No change');
END IF;
END LOOP;
end changeName;
Ich bin nicht sicher, ob ich den Cursor für dieses Problem richtig