Oracle Trigger fuktioniert nicht mehr

Hallo,
Ich habe ein Triggerproblem:

Ich habe ein kleines Programm in VB 6.0 geschrieben, dass mir eine Tabelle auf einer Oracle Datenbank (10g) erstellen lässt.
In der Tabelle bilde ein Autowertfeld nach, in dem ich eine Sequenz und einen Trigger auf diese Sequenz bezogen per SQL-Befehl erstellen lasse. Das Erstellen funktioniert so , dass ich einen SQL-String zusammenbaue und diesen dann an den Oracle Server schicke.

Der Code um die Sequenz zu erstellen lautet:

Sequenzname = „SEQ_IDNR001_auto“

'***SEQUENZ ERSTELLEN ************************************************
SQLStr = „“
SQLStr = „CREATE SEQUENCE „““ & Schema & „“".""" & Sequenzname & „“" "
SQLStr = SQLStr & " INCREMENT BY 1 "
SQLStr = SQLStr & " START WITH " & (MAXAUTOWERT + 1) & " "
SQLStr = SQLStr & " MINVALUE 1 "
SQLStr = SQLStr & " NOCYCLE "
SQLStr = SQLStr & " CACHE 20 NOORDER"
AdoSQLServerCon.Execute SQLStr

Der Code um den trigger erstellen zu lassen lautet:

Triggername = „TestTRIG“
Autowertfeld=„IDNR001“

SQLStr = „“
SQLStr = „create or replace trigger " & Triggername
SQLStr = SQLStr & " before insert on " & DBTable & " for each row“
SQLStr = SQLStr & " begin "
SQLStr = SQLStr & " if :new." & AUTOWERTFeld & " is null then"
SQLStr = SQLStr & " select " & Sequenzname & „.nextval into :new.“ & AUTOWERTFeld & " from dual;"
SQLStr = SQLStr & " end if; "
SQLStr = SQLStr & " end; "
AdoSQLServerCon.Execute SQLStr

Die Syntax zum Erstellen des triggers habe ich aus einem Artikel aus dem Oracle-Forum

Die Sequenz und der Trigger werden erstellt. Ich benutze zur Kontrolle die Oracle Enterprise Manager-Konsole.

In der Tabelle unter Trigger sehe ich jedoch, dass dieser Trigger einen roten Kreis mit einem weissen x darin besitzt. as bedeutet, dass dieser trigger NICHT funktioniert.

Wenn ich über die Konsole den Code des Tiggers mir anschaue steht da dann folgendes:

begin if :new.IDNR001$ is null then select SEQ_IDNR001_auto.nextval into :new.IDNR001$ from dual; end if; end;

Lasse ich diesen Code neu kompilieren (ich klicke auf die Taste kompilieren" in der Kosnsole in der triggeransicht) dann kommt folgende Fehlermeldung:

Zeilen-# = 1 Spalten-# = 37 Fehlertext = PL/SQL: SQL Statement ignored
Zeilen-# = 1 Spalten-# = 44 Fehlertext = PL/SQL: ORA-02289: Sequence

Ich behaupte die Sequenz ist da ich kann Sie in der Sequenzansicht sehen : Da steht die generierte Sequenz mit dem namen „SEQ_IDNR001_auto“. Ich kann Sie in der Liste mit genau DIESEM Namen sehen !!!

Was ist hier los ?

Ich habe das Ganze vor ca. 2 Monaten programmiert und hatte alles funktioniert !!!
Jetzt auf einmal funktioniert der Trigger nicht mehr wie kann das sein ?

Weis jemand Rat und kann mir helfen ?

Ich habe auch noch andere Tabellen in der Datenbank und ALLE sind auf einmal deaktiviert (wie oben beschrieben) !

Ich weiß mir keinen Rat, da die Syntax exakt dem Artikel im Oracle Forum entnommen ist und es nicht mehr funktioniert.

Meine Oracle 10g Datenbank ist eine kostenlose Version für Entwickler und wurde von mir vor ca 1. Jahr installiert.

frustrierte Grüße

Niels

Hi!

Ich behaupte die Sequenz ist da ich kann Sie in der
Sequenzansicht sehen

Das kann schon sein, aber wie siehts mit den Synonymen aus? Wie schauts mit den Grants aus? In welchem Schema liegt die Sequence? In welchem Schema liegen die Tabellen?

Grüße,
Tomh

Die Sequenzen und Trigger liegen im gleichen Schema wie die Tabellen.
Was bitte meinst Du mit „Grants“ ? Wo kann ich das nachschauen hat das damit zu tun ?

Grüße
Nils