SQLDeveloper Trigger-Fehler-Bericht - ORA-00942: Tabelle oder view nicht vorhanden
Ich diesen code in die SQL-Developer ' s Arbeitsblatt:
CREATE TRIGGER T_testDSNa
before INSERT
on testDSNa
referencing new as new
for each ROW
BEGIN
SELECT S_testDSN.nextval INTO :NEW.SYSID FROM dual;
END;
Bekomme ich diese:
Error report - ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action:
Würde jemand wissen, warum? Dieser arbeitete für 3 vorherigen Tabellen, bis ich versuchte, führen Sie die DDL zum erstellen eines 4th. Alternativ gibt es einen besseren Weg, um set-up eine autoincrementing PK?
- Hast du vergessen zu erstellen, die testDSNa Tabelle?
- NÖ, ich habe es geschaffen, und ich kann einfügen und löschen von es. Allerdings läuft Select * from testDSNa; funktioniert auch nicht. Gleichen Fehler.
- Dann wird die Tabelle gar nicht genannt, was Sie denken, es ist. Ist es möglich, dass Sie umgeben den Tabellennamen in doppelte Anführungszeichen, wenn Sie es erstellt haben, drehen Sie es in ein case-sensitive Bezeichner (stackoverflow.com/questions/563090/...)? Wenn dem so ist, müssten Sie zu surround die Tabellennamen in doppelte Anführungszeichen jedes mal, wenn Sie darauf verweisen (was ein Grund dafür ist, dass case-sensitive Bezeichner sind verpönt).
- Kannst du die
CREATE TABLE
script benutzt Ihr? - Hmmm, also ich lese etwas seltsam auf einem anderen post hier, und ich habe versucht, gerade die Eingabe von "Benutzer"."testDSNa" statt nur testDSNa, und plötzlich funktioniert es wieder. Warum geschieht dieses? (Benutzer = name der Datenbank, so dass ich denke, es könnte etwas werden mit der Spezifikation des testDSNa, sorta wie Java hat java.lang.*bla*)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem war der Mangel des Schemas. Oracle Definition eines Schemas :
Wenn Sie wissen möchten, die Objekte zu erreichen, ohne alias. Haben Sie Blick auf [USER_OBJECTS]. Das beschreibt die relationale Objekte im Besitz durch den aktuellen Benutzer :
Wenn Sie wissen möchten, die Objekte zugänglich für den aktuellen Benutzer :
In Ihrem Fall, um zu sehen, Ihre Objekte in der Liste der verfügbaren Tabellen, die Sie brauchen:
Können Sie auch ändern, die Sitzung zu vermeiden, alias :
Für Privilegien/Rollen Ansichten, die Sie sich ansehen können :
Die Letzte Methode, aber nicht die sicherste zu vermeiden alias. Ist die Anmeldung mit einem Benutzer, der den gleichen Namen wie das schema.
In der Hoffnung, dass es helfen kann
War ich immer das gleiche Problem.
Lösung: Was habe ich beobachtet, dass meine Tabelle die ich erstellt wurde, umgeben von doppelten Anführungszeichen, die es groß-und Kleinschreibung.
Also für jedes mal, wenn ich siehe meine Tabelle, die ich brauche, um es umgeben von doppelten Anführungszeichen.
siehe diesen link: Was genau tun Sie Anführungszeichen um den Tabellennamen zu tun?