Announcement

Collapse
No announcement yet.

Autowert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Autowert

    Hallo Kollegen, vielleicht kann jemanden mir helfen. Ich habe eine Tabelle mit einem Autowert:


    CREATE TABLE PLACE (
    code NUMBER(10) CONSTRAINT PK_place PRIMARY KEY,
    nom VARCHAR2(180 CHAR) CONSTRAINT NN_place_nom NOT NULL
    )

    CREATE SEQUENCE s_place INCREMENT BY 1 START WITH 1;

    CREATE OR REPLACE
    TRIGGER add_code_place
    BEFORE INSERT ON place
    FOR EACH ROW
    BEGIN
    SELECT s_place.NEXTVAL INTO :NEW.code
    FROM DUAL;
    END add_code_place;

    und wenn ich INSERT machen will, bekomme ich immer einen fehler "Anzahl der Werte reicht nicht aus"

    INSERT INTO PLACE
    (SELECT DISTINCT c.place FROM raw_bib.copies c WHERE c.place IS NOT NULL);

    Diese SELECT ist von eine andere Tabelle, die ich schon mit daten erfullt habe.

    Kann jemand mir sagen was ist falsch??

    Danke

  • #2
    Originally posted by mnga View Post

    INSERT INTO PLACE
    (SELECT DISTINCT c.place FROM raw_bib.copies c WHERE c.place IS NOT NULL);
    dein INSERT Statement muss alle Attribute angeben.
    Code:
    INSERT INTO PLACE (CODE, NOM)
                   (SELECT DISTINCT NULL, c.place 
                       FROM raw_bib.copies c 
                    WHERE c.place IS NOT NULL);
    Statement ist nicht getestet. sollte aber rennen.

    Greetz

    jogi

    Comment


    • #3
      Danke für die schnelle Anwort, ich habe es versucht, aber jetzt bekomme ich den fehler:

      "ORA 04098: Trigger 'BIB.ADD_CODE_PLACE' ist ungültig und konnte nicht bestätigt werden"

      Comment


      • #4
        Code:
        INSERT INTO PLACE (nom)
        (SELECT DISTINCT c.place FROM raw_bib.copies c WHERE c.place IS NOT NULL);
        kuemmelchen

        Comment

        Working...
        X