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

Fehler Beim Erstellen eines Triggers

Frage Entwicklung Datenbanken

Mitglied: PowerPan

PowerPan (Level 1) - Jetzt verbinden

06.02.2008, aktualisiert 08.02.2008, 4614 Aufrufe, 8 Kommentare

Hallo

ich möchte auf einer Oracle Datenbank einen Trigger erstellen

Die Sequence habe ich schon erstellt Sie heisst SEQUENCE1

Um den Trigger anzulegen benutzte ich/ will ich benutzen:


01.
CREATE OR REPLACE TRIGGER TRIGGER_MLCD_COREDATA 
02.
BEFORE INSERT  
03.
ON MLCD_COREDATA  
04.
REFERENCING NEW AS New OLD AS Old  
05.
FOR EACH ROW  
06.
BEGIN  
07.
 
08.
  SELECT SEQUENCE1.NEXTVAL  
09.
    INTO :NEW.RECID  
10.
    FROM DUAL;  
11.
 
12.
END;  
13.
/ 
Der code von SEQUENCE1

01.
SEQUENCE1   
02.
MINVALUE 1  
03.
MAXVALUE 9999999999999999999999999999  
04.
INCREMENT BY 1  
05.
START WITH 1  
06.
CACHE 20  
07.
NOORDER  NOCYCLE ;
wenn ich nun den Trigger erstelln will kommt folgender Fehler:

01.
Error report: 
02.
ORA-06552: PL/SQL: Compilation unit analysis terminated 
03.
ORA-06553: PLS-320: the declaration of the type of this expression is incomplete or malformed 
04.
06552. 00000 -  "PL/SQL: %s" 
05.
*Cause:     
06.
*Action:
Kann mir da jemand helfen?
Mitglied: Bolle97
06.02.2008 um 10:04 Uhr
Hallo,

versuch es mal so:

CREATE OR REPLACE TRIGGER TRIGGER_MLCD_COREDATA
BEFORE INSERT ON MLCD_COREDATA
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW

declare
v_RECID MLCD_COREDATA.RECID%TYPE;

BEGIN

SELECT SEQUENCE1.NEXTVAL
INTO v_RECID
FROM DUAL;
:NEW.RECID := v_RECID;

END;
/


Gruß - René
Bitte warten ..
Mitglied: PowerPan
06.02.2008 um 10:18 Uhr
hi es kommt nun wieder als Fehler:

01.
 
02.
Error starting at line 1 in command: 
03.
CREATE OR REPLACE TRIGGER TRIGGER_MLCD_COREDATA 
04.
BEFORE INSERT ON MLCD_COREDATA  
05.
REFERENCING NEW AS New OLD AS Old  
06.
FOR EACH ROW  
07.
 
08.
declare 
09.
v_RECID MLCD_COREDATA.RECID%TYPE; 
10.
 
11.
BEGIN  
12.
 
13.
SELECT SEQUENCE1.NEXTVAL  
14.
INTO v_RECID 
15.
FROM DUAL;  
16.
:NEW.RECID := v_RECID; 
17.
 
18.
END;  
19.
Error report: 
20.
ORA-06552: PL/SQL: Compilation unit analysis terminated 
21.
ORA-06553: PLS-320: the declaration of the type of this expression is incomplete or malformed 
22.
06552. 00000 -  "PL/SQL: %s" 
23.
*Cause:     
24.
*Action: 
25.
 
Bitte warten ..
Mitglied: Bolle97
06.02.2008 um 15:27 Uhr
Hallo,

also bei mir funktioniert das.
Poste mal bitte die Tabellendefinition (wenigstens den Datentyp von "RECID") und die Oracle-Version.

Gruß - René
Bitte warten ..
Mitglied: PowerPan
06.02.2008 um 15:54 Uhr
Oracle 10.2

RECID ist vom TYP Number
Bitte warten ..
Mitglied: Bolle97
07.02.2008 um 09:24 Uhr
Hallo,

also bei mir funktioniert alles perfekt, sowohl in 9i als auch in 10g.
Noch mal nachgefragt, was ist das für eine Tabelle?
Mach mal ein "DESC MLCD_COREDATA" und poste das Ergebnis.

Das "REFERENCING NEW AS New OLD AS Old" im Trigger brauchst Du nicht angeben, es sei denn eine Spalte in der Tabelle hast Du "NEW" oder "OLD" benannt.

Gruß - René
Bitte warten ..
Mitglied: PowerPan
08.02.2008 um 14:07 Uhr
Hi habe das Problem gefunden ich hatte eine Spalte mit dem Namen "Date" welches ein Reserviertes Word ist das war as Problem
Bitte warten ..
Mitglied: Biber
08.02.2008 um 15:43 Uhr
Moin Powerpan,

das verstehe ich nur begrenzt.
In dem von Dir geposteten CREATE-TRIGGER-Statement wird doch außer dem Feld RECID kein anderes Feld angesprochen - somit auch kein Feld namens "DATE"?

Soll Deine Fehleranalyse jetzt bedeuten, dass ich in Oracle zwar Tabellen mit Spaltenname "RESEVIERTESWORT" anlegen kann, dann aber die DB krachen geht, sobald ich darauf einen Trigger definiere?

Und das oben gepostete, nicht funktionierende Statement lässt sich jetzt kompilieren, seit Du ein Feld "DATE" in einer Tabelle auf "DATUM" umbenannt hast???

So abgedreht kam mir Oracle bisher gar nicht vor...

Ratlos
Biber
Bitte warten ..
Mitglied: PowerPan
08.02.2008 um 15:45 Uhr
also unser dba war draufgekommen der war beim ertsllen leider krank als ich den Beitrag schrieb

Oracle tut wohl beim anlgen die ganze Tabelle begutachten das is das halt aufgetreten obwohl der Spalten name in " " gesetzt war naja was solls habe as geändert und jetzt geht es
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Fehler beim Erstellen eines virtuellen Computers (Windows Server 2012 R2) (16)

Frage von peterpa zum Thema Windows Server ...

Microsoft
gelöst Fehler beim Ausführen eines MSSQL-Triggers mit EXECUTE AS User (1)

Frage von Mesaou zum Thema Microsoft ...

Microsoft
Pop-Up Dialog in Batch erstellen (3)

Frage von batchx zum Thema Microsoft ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...

Windows Server
gelöst Einzelnes Windows Update über GPO deinstallieren (16)

Frage von lordofremixes zum Thema Windows Server ...