2017-12-10 5 views
0

Ich versuche einen Auslöser zu erstellen, um ein Feld zu ändern, wenn ein anderes aktualisiert wird. Dies ist mein aktueller Trigger, es funktioniert derzeit, wenn ich nur eine Zeile aktualisiere, aber wenn ich mehrere aktualisiere, funktioniert es nicht. Wie kann ich das beheben?PL/SQL kann nicht mehrere zu aktualisierende Zeilen erhalten, wenn ein Auslöser ausgelöst wird

Ich benutze Orakel übrigens.

Create or replace trigger br_change 
       after update on employees 
       Declare 
        cursor pls_work is 
    select e.employeeID, e.departmentID, ep.billrate, jobrank, salary 
    from employees e full join employeeproject ep on e.employeeID 
    = ep.employeeID full join jobtypes jt on jt.jobname = e.title; 
       empID number(3); 
       dpID number(1); 
       br number(4); 
       jr number(1); 
       s number(12); 
      BEGIN 
       open pls_work; 
       fetch pls_work into empID, dpID, br, jr, s; 
       update employeeproject set billrate = ((s/2000)+(jr*10)) where empID = employeeID; 
       dbms_output.put_line('Updating billrate to match changes'); 
     END; 
     /
+0

„Es funktioniert nicht“ ist nicht hilfreich. Sagen Sie uns, was tatsächlich passiert - ein Fehler, falsche Ergebnisse? Ich kann mir vorstellen, dass Sie den falschen Rechnungswert haben. Es kann hilfreich sein, Beispieldaten und aktuelle/erwartete Ergebnisse einzubeziehen. –

Antwort

0

Wenn Ihre Update-Anweisung mehrere Zeilen beeinflusst die Sie brauchen für jede Zeile hinzufügen

Verwandte Themen