Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Trigger after insert on

Frage Entwicklung Datenbanken

Mitglied: NanaBama

NanaBama (Level 1) - Jetzt verbinden

18.06.2009, aktualisiert 09:19 Uhr, 9449 Aufrufe, 6 Kommentare

Hallo zusammen,
ich habe ein kleines Problemchen, bei dem es mich schon sehr wundert, dass ich es nicht alleine lösen kann.
Vielleicht könnt ihr mir helfen, mir die Schuppen von den Augen zu nehmen!

Mein Problem:
-Oracle Datenbank
-Trigger greift nach dem Einfügen einer neuen Zeile

Trigger läuft soweit auch schön ordentlich durch, jetzt möchte ich jedoch die neu eingefügten Datensätze weiterverarbeiten,
mit einem erneuten "INSERT INTO" in eine neue Tabelle.
:NEW und :OLD sind jedoch leider nicht möglich...
Wie lautet dieser blöde Befehl??

Vielen Dank euch!
Mitglied: Bolle97
18.06.2009 um 10:50 Uhr
Hallo,

am besten ein kleines Beispiel
01.
TRIGGER assist_art_after 
02.
   after update or insert or delete on assist_art 
03.
   for each row 
04.
declare 
05.
   key_c varchar2(1); 
06.
begin 
07.
   if inserting then 
08.
      aend_art := 'I'; 
09.
      key_c := :new.KEY; 
10.
      insert into log_tabelle 
11.
      values(key_c, :new.BEZEICHNUNG); 
12.
   elsif updating then 
13.
      aend_art := 'U'; 
14.
      key_c := :new.KEY; 
15.
      update log_tabelle 
16.
         set T8115_ASSISTENTENART = :new.BEZEICHNUNG 
17.
         where T8115_ASS_ARTEN_SCHLUESSEL = key_c; 
18.
   elsif deleting then 
19.
      aend_art := 'D'; 
20.
      key_c := :old.KEY; 
21.
      delete from log_tabelle 
22.
         where T8115_ASS_ARTEN_SCHLUESSEL = key_c; 
23.
   else null; 
24.
   end if; 
25.
end assist_art_after;
Gruß René
Bitte warten ..
Mitglied: NanaBama
18.06.2009 um 10:58 Uhr
Hallo René,

danke für Dein Beispiel.
So in der Art habe ich es auch versucht, aber
"Fehler: ORA-04082: NEW- oder OLD-Verweise in Triggern auf Tabellenebene nicht zulässig"
Bitte warten ..
Mitglied: Bolle97
18.06.2009 um 11:38 Uhr
Hallo,

na dann poste doch mal Dein Beispiel.

Gruß René
Bitte warten ..
Mitglied: NanaBama
18.06.2009 um 12:29 Uhr
01.
create or replace 
02.
TRIGGER ANLEGEN 
03.
AFTER INSERT ON Table1 
04.
DECLARE 
05.
   NUSER VARCHAR2(50); 
06.
 
07.
BEGIN 
08.
   NUSER := :NEW.USERNAME; 
09.
 
10.
   INSERT INTO Table2 ( 
11.
                              DATUM, 
12.
                              USERA 
13.
                              )  
14.
   values               ( 
15.
                              SYSDATE,  
16.
                              NUSER 
17.
                              ); 
18.
END;

Eigentlich sehr simpel, aber eben die Fehlermeldung.
Ich weiß nicht wie ich an diesen Usernamen rankomme!
Bitte warten ..
Mitglied: Biber
18.06.2009 um 12:33 Uhr
Moin NanaBama,

Du schreibst (und glaubst wahrscheinlich auch)
Trigger greift nach dem Einfügen einer neuen Zeile
... aber nichtsdestotrotz ist Dein Trigger mit Sicherheit ein "Table-Trigger" und kein "row-Trigger" wie der in Bolle97s Beispiel.

Bei einem Table-Trigger (sprich: der feuert, wenn tabelle xy upgedated oder dorthin inserted wird) sind logischerweise keine :New/:Old-Referenzen erlaubt.

Grüße
Biber

[Edit] Upps, hat sich zeitlich mit NanaBamas Kommentar überschnitten....
Aber wie geschrieben - da ist kein "FOR EACH ROW", das ist gar kein Row-Trigger.
[/Edit]
Bitte warten ..
Mitglied: NanaBama
18.06.2009 um 13:08 Uhr
Danke, danke, danke! ^^
Oh man ich hasse es, wenn etwas scheitert und es nur an solchen Kleinigkeiten liegt!

Ich hab ein "FOR EACH ROW" eingefügt und siehe da, es läuft!
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Datenbanken
Microsoft SQL Server Feld mit Trigger aktualisieren (3)

Frage von ursus57 zum Thema Datenbanken ...

Festplatten, SSD, Raid
Intel SSD 540s wiped after changing the ATA password in controller

Link von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Datenbanken
gelöst Postgre SQL Trigger oder nachgelagertes separates Skript? (4)

Frage von TheJoker2305 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...