ORA-01400 und ORA 02296 : Cannot insert null oder ändern Hinzugefügt-Spalte Eigenschaften NICHT NULL

"Ändern Sie Ihre Abfrage, um eine Spalte hinzuzufügen, die subtrahiert die alten Gehalt vom neuen Gehalt.
Beschriften Sie die Spalte Erhöhen. Führen Sie das überarbeitete Abfrage."

Gut, nach meiner interpretation, ich versuchte zunächst, um die Spalte hinzuzufügen, indem Sie Skripts:

ALTER TABLE EMPLOYEES ADD (
    INCREASE2   NUMBER(6));

Dann:

INSERT INTO EMPLOYEES(INCREASE2)
SELECT (salary*1.155) - salary FROM EMPLOYEES;

Fehler de SQL: ORA-01400: não é possível inserir NULL-em ("HR"."Die MITARBEITER"."Feld "employee_id"")
01400. 00000 - "cannot insert NULL into (%s)"

"HR"."EMPLOYEES"."EMPLOYEE_ID" ist der Primärschlüssel.

  1. Ich versuche nicht zu insert einen NULL-Wert;
  2. Ich weiß nicht, warum oracle nicht akzeptieren, meine Einträge. Ich habe versucht, um zu überprüfen, ob es irgendeinen syntax-Fehler in meinem Ausdruck durch grundlegende einfügen:

    INSERT INTO EMPLOYEES(INCREASE2)
    VALUES ('whatever');

Und trotzdem bekam ich den Fehler.

Ich habe versucht, ändern dann die Spalte nicht null

ALTER TABLE EMPLOYEES
MODIFY
(INCREASE2  NUMBER(6) NOT NULL);

Und:

02296 00000 - "nicht aktivieren (%s.%s) - null-Werte"

*Ursache: ein alter table aktivieren-Einschränkung ist fehlgeschlagen, da die Tabelle

enthält Werte, die nicht um die Einschränkung.

*Aktion: Offensichtlich

Fand ich eine einfache Lösung für die übung, aber ich bin neugierig, warum mein code nicht gelingen.

Auflösung:

SELECT employee_id, last_name, salary,
    ROUND(salary * 1.155, 0) "New Salary",
    ROUND(salary * 1.155, 0) - salary "Increase"
FROM employees;
Schreibe einen Kommentar