2017-04-01 5 views
0

SQLでテーブルを作成しようとしていますが、キーワードがありません。それを修正する方法を見つけ出す:オラクルでsqlでテーブルを作成しようとしていますが、キーワードがありません。修正方法を見つけることができません。

CREATE TABLE Attendance_of_employee 
(
    supervisior VARCHAR(30) DEFAULT 'NONE', 
    arrival double NOT NULL, 
    shift_end double NOT NULL, 
    date_time DATE NOT NULL, 
    worked_hours INT NOT NULL, 
    ID_record VARCHAR(30) NOT NULL, 
    employeeID INT NOT NULL, 
    PRIMARY KEY (ID_record), 
    FOREIGN KEY (employeeID) REFERENCES EmployeeTAB(employeeID) 
); 

Error report - 
SQL Error: ORA-00905: chýbajúce kľúčové slovo 
00905. 00000 - "missing keyword" 
*Cause:  
*Action: 
+1

二重に変更する必要があるようです。ここにリンクがあります http://stackoverflow.com/a/36424127/7623263 – ghwananis

+0

なぜデータタイプ番号の到着とシフト終了が日付ではないのですか?それははるかに理にかなっています。 – mathguy

答えて

2

、あなたは通常の文字列のための数値のnumbervarchar2()を使用しています。私は主キーを常にテーブルの最初の列にします。だから、:(EmployeeTABが定義されていないため、外部キー関係のない、)

CREATE TABLE Attendance_of_employee (
    ID_record VARCHAR2(30) NOT NULL, 
    supervisior VARCHAR2(30) DEFAULT 'NONE', 
    arrival number NOT NULL, 
    shift_end number NOT NULL, 
    date_time DATE NOT NULL, 
    worked_hours INT NOT NULL, 
    employeeID INT NOT NULL, 
    PRIMARY KEY (ID_record), 
    FOREIGN KEY (employeeID) REFERENCES EmployeeTAB(employeeID) 
); 

HereはRextester内のリンクです。

+0

ありがとうございました! –

1

doubleの代わりに倍精度を使用します。

CREATE TABLE Attendance_of_employee(supervisior VARCHAR(30) DEFAULT 'NONE', 
arrival double precision NOT NULL, 
shift_end double precision NOT NULL, date_time DATE NOT NULL, 
worked_hours INT NOT NULL, 
ID_record VARCHAR(30) NOT NULL, employeeID INT NOT NULL, PRIMARY KEY (ID_record), 
FOREIGN KEY (employeeID) REFERENCES EmployeeTAB(employeeID)); 
関連する問題