1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Oracle 9: ORA-00984: Spalte hier nicht zulässig

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von javas, 19. Juli 2010.

  1. javas

    javas Grünschnabel

    Hallo zusammen

    Ich habe folgendes Problem:
    Ich will mit folgendem Query eine neue Tabelle erstellen:
    Code (SQL):
    1.  
    2. CREATE TABLE testtable(
    3. id INT DEFAULT testtable_id_seq.NEXTVAL PRIMARY KEY,
    4. name VARCHAR(100) NOT NULL
    5. );
    6.  
    Nun erhalte ich folgenden Fehler:
    16:03:22 [CREATE - 0 row(s), 0.000 secs] [Error Code: 984, SQL State: 42000] ORA-00984: Spalte hier nicht zulässig

    Die Sequenz existiert!

    Kann mir jemand helfen?
    Der Fehler ist auf der der 2. Zeile!

    Besten Dank
    Zuletzt von einem Moderator bearbeitet: 23. Mai 2014
  2. Steiner_B

    Steiner_B Erfahrenes Mitglied

    Bin zwar kein Oracle-Mensch, aber kann es sein das der Datentyp statt "int" "number" heißen muss?
  3. Yaslaw

    Yaslaw n/a Moderator

    Dass man eine Sequenz als Default-Value setz hab ich so noch nie gemacht. Wir lösten das jeweils über einen Trigger.

    Hab da im Internet auch was gefunden dass genau dein Fehler ausgibt
    http://thinkoracle.blogspot.com/2006/02/oracle-sequences.html

    Achja, bitte in Zukunft deine SQLs in [code=sql]dein Code[/code] setzen....
    Zuletzt von einem Moderator bearbeitet: 23. Mai 2014
  4. dbwizard

    dbwizard Erfahrenes Mitglied

    Hallo,

    Wie Yaslaw ja schon geschrieben hat : Dies geht nicht so. Du musst das Atrtribut als Number erstellen und anschliessend z.b per Trigger füllen lassen.

    Also etw aso :

    Code (SQL):
    1.  
    2.  
    3. CREATE TABLE testtable
    4.     (id                             NUMBER NOT NULL,
    5.     name                           VARCHAR2(100 BYTE) NOT NULL
    6.   ,
    7.   CONSTRAINT TESTTABLE_PK
    8.   PRIMARY KEY (id)
    9.   USING INDEX
    10.   TABLESPACE  ruma_index)
    11.   TABLESPACE  ruma_data
    12.   NOPARALLEL
    13.   LOGGING
    14.   MONITORING
    15. /
    16.  
    17.  
    18. CREATE OR REPLACE TRIGGER trig_Testtable_get_pk
    19.  BEFORE
    20.   INSERT
    21.  ON TESTTABLE
    22. REFERENCING NEW AS NEW OLD AS OLD
    23.  FOR EACH ROW
    24. BEGIN
    25.     SELECT testtable_id_seqT.NEXTVAL
    26.         INTO :NEW.ID
    27.         FROM DUAL;
    28. END trig_Testtable_get_pk;
    29. /
    30.  
    Gruss
    Zuletzt von einem Moderator bearbeitet: 23. Mai 2014
  5. javas

    javas Grünschnabel

    Hallo zusammen
    Danke für eure Antworten!
    Ich werde morgen mal probieren, ob dies für meinen Anwendungszweck geeignet ist!
    Freundliche Grüsse
    javas
  6. javas

    javas Grünschnabel

    Leider funktioniert das so nicht! Beim Erstellen des Triggers erhalte ich folgenden Fehler:
    Fehlender IN- oder OUT-Parameter auf Index:: 1
    Wisst ihr was das Problem sein könnte?

Diese Seite empfehlen