2016-04-10 3 views
0

Ich versuche, eine Tabelle in einer Oracle-Datenbank einzurichten und bin immer einen invalid data type Fehler, wenn ich versuche, diesen Befehl auszuführen:ORACLE SQL - ungültiger Datentyp auf Tabellenerstellung

CREATE TABLE Students (
StudentID NUMBER(8) NOT NULL, 
FirstName VARCHAR(25) NOT NULL, 
Surname VARCHAR(25) NOT NULL, 
Address VARCHAR(100) NOT NULL, 
Postcode VARCHAR(7) NOT NULL, 
DoB DATE NOT NULL, 
Gender VARCHAR(1) NOT NULL, 
StudentCategory VARCHAR(50), 
StudyType VARCHAR(20), 
Nationality VARCHAR(20), 
SmokerStatus BOOLEAN, 
SpecialNeeds VARCHAR(30), 
Comments VARCHAR(30), 
PlacedStatus BOOLEAN, 
CourseID NUMBER(6) NOT NULL, 
AdvisorOfStudies NUMBER(6) NOT NULL, 
NextOfKin NUMBER(8) NOT NULL 
); 

Nach der Fehlermeldung , etwas passiert 'beginnend in Zeile 1'. Das würde auf die eigentliche create-Anweisung selbst und nicht auf das Datenwörterbuch hinauslaufen. Ich verstehe nicht, wie dies den invalid data type Fehler verursachen kann.

Wenn jemand herausfinden kann, was das verursacht, würde das sehr geschätzt werden!

Fehlerdetails:

Fehlerbericht - SQL-Fehler: ORA-00902: ungültiger Datentyp 00902. 00000 - "ungültiger Datentyp" * Ursache:
* Aktion:

Danke, Mark

+1

** [Gibt es einen Typ boolean in Oracle-Datenbanken?] (Http://stackoverflow.com/questions/3726758/is-there-a-boolean-type-in-oracle-databases) ** – lad2025

+0

Ich dachte, es könnte etwas damit zu tun haben, aber nichts auf der Oracle-Website spezifiziert, was daran falsch sein könnte. Können Sie mich in die richtige Richtung zeigen @ lad2025 – marcuthh

+0

Nicht im Zusammenhang mit Ihrem Fehler, aber beachtenswert - von der Oracle SQL-Referenz: "Verwenden Sie nicht den VARCHAR-Datentyp. Verwenden Sie stattdessen den VARCHAR2-Datentyp. Obwohl der VARCHAR-Datentyp ist auch synonym Mit VARCHAR2 wird der Datentyp VARCHAR so geplant, dass er als separater Datentyp neu definiert wird, der für Zeichenketten variabler Länge im Vergleich zu verschiedenen Vergleichssemantiken verwendet wird. " – EdStevens

Antwort

3

Ändern Sie SmokerStatus von BOOLEAN zu char (1). Oracle hat boolean data type nicht. Sie müssen char (1) oder Nummer (1) für diesen Zweck verwenden.

SmokerStatus char(1),