簡體   English   中英

將數據插入SQL表時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM