ORA-00904: ungültige Kennung
Frage
Ich versuche, eine Tabelle in Oracle zu erstellen und den Fehler bekommen: ORA-00904: : invalid identifier
Hier ist mein Befehl. Ich kann wirklich kein Problem darin sehen. Bitte helfen Sie mir, den Fehler zu identifizieren. Danke.
CREATE TABLE Sale (
CustomerId INT NOT NULL ,
BarCode INT NOT NULL ,
SalesId INT NOT NULL ,
Date DATE NULL ,
CheckOut TINYINT(1) NULL ,
PRIMARY KEY (CustomerId, BarCode, SalesId) ,
CONSTRAINT fk_Customer_has_Product_Customer
FOREIGN KEY (CustomerId )
REFERENCES Customer (CustomerId )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_Customer_has_Product_Product1
FOREIGN KEY (BarCode )
REFERENCES Product (BarCode )
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Lösung
Wie bereits erwähnt, ändern „DATE“, um etwas mehr beschreibend und nicht reserviert. auch scheint es TINYINT nicht funktioniert eine Tabelle, so Änderung NUMBER (1), sowie Tonys richtigen Vorschlag zur Verringerung der Name Größe (<= 30 chrs)
CREATE TABLE Sale
(
CustomerId INT NOT NULL ,
BarCode INT NOT NULL ,
SalesId INT NOT NULL ,
SaleDate DATE NULL , --DATE is reserved, changed to SaleDate
CheckOut number(1) NULL , --tinyint(1) did not work so changed to number(1)
PRIMARY KEY( CustomerId, BarCode, SalesId ) ,
CONSTRAINT fk_SaleCustCusID FOREIGN KEY( CustomerId ) REFERENCES Customer( CustomerId ) ON
DELETE NO ACTION ON
UPDATE NO ACTION,
CONSTRAINT fk_SaleCustBarCode FOREIGN KEY( BarCode ) REFERENCES Product( BarCode ) ON
DELETE NO ACTION ON
UPDATE NO ACTION
);
Andere Tipps
Die maximale Länge für eine Oracle-Kennung beträgt 30 Zeichen. Diese überschreiten, dass sind 32 Zeichen lang:
- fk_Customer_has_Product_Customer
- fk_Customer_has_Product_Product1
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow