[英]Error Inserting Data into SQL Tables
我最困難的時間是要弄清楚我的數據出了什么問題。 我不斷收到錯誤ORA-00984,此處不允許列。 列是84,算出是性角色。 該表是使用以下語句創建的:
CREATE TABLE EMPLOYEE
(
FNAME VARCHAR2(15) NOT NULL,
MINIT CHAR,
LNAME VARCHAR2(15) NOT NULL,
SSN CHAR(9) NOT NULL,
BDATE DATE,
ADDRESS VARCHAR2(30),
SEX CHAR,
SALARY NUMBER(10,2),
SUPER_SSN CHAR(9),
DNO NUMBER NOT NULL,
CONSTRAINT EMPPK PRIMARY KEY (SSN) DISABLE,
CONSTRAINT EMPSUPERFK FOREIGN KEY (SUPER_SSN) REFERENCES EMPLOYEE(SSN) DISABLE
);
這是插入語句:
INSERT INTO EMPLOYEE (FNAME, MINIT, LNAME, SSN, BDATE, ADDRESS, SEX, SALARY, SUPER_SSN, DNO)
VALUES ('John', 'B', 'Smith', 123456789, '1965-02-09', '731 Fondren, Houston, TX', M, 30000, 333445555, 5);
在過去一個小時左右的時間里,我一直在盯着這個看,無法弄清楚。 我想念什么?
也許此解決方案將為您服務:
INSERT INTO EMPLOYEE (FNAME, MINIT, LNAME, SSN, BDATE, ADDRESS, SEX, SALARY, SUPER_SSN, DNO)
VALUES ('John', 'B', 'Smith', '123456789', '1965-02-09', '731 Fondren, Houston, TX', 'M', 30000, '333445555', 5);
在您的CREATE TABLE語句中,您未指定性別表的大小,CHAR的默認大小為1。這意味着您只能在性別列中插入1個字符。 否則需要更改,例如
SEX CHAR(6)
MINIT CHAR('*the max size of string you want to put into this column*')
注意,我使用6作為char的大小,因為您可以插入的最大字符串大小為6(對於“ female”)。
因此,問題是雙重的。 日期格式不正確。 應該是1965年1月1日。 而SEX(M或F)則需要在其周圍加上單引號。 我想這表明您不應該信任提供給您的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.