oracle表示异常怪异11g

时间:2013-12-25 19:48:59

标签: oracle oracle11g

CREATE TABLE  "EMPLOYEE" 
("SSN" NUMBER(*,0) NOT NULL ENABLE, 
 "MANAGER_SSN" NUMBER(*,0) NOT NULL ENABLE, 
 "STREET" CHAR(40) NOT NULL ENABLE, 
 "CITY" CHAR(25) NOT NULL ENABLE, 
 "DEP_NO" NUMBER(*,0) NOT NULL ENABLE, 
 "NAME" CHAR(15) NOT NULL ENABLE, 
 "SALARY" NUMBER(8,2) NOT NULL ENABLE, 
 "HIRE_DATE" DATE, 
 CONSTRAINT "PK_EMPLOYEE" PRIMARY KEY ("SSN") ENABLE
)

当我尝试插入该表时:

insert into employee values (1,1,"cola","beirut",1,"mohamad",1500,"7-feb-1999")
它说: ORA-00984:这里不允许列 这到底是什么 !!!!!为什么会发生这种错误  “这不是小写或大写字母问题”

2 个答案:

答案 0 :(得分:1)

在Oracle中,varchar文字用单引号(')标记,而不是双引号(")。双引号表示区分大小写的对象名称,例如列。

只需将双引号切换为单引号,就可以了:

insert into employee values (1,1,'cola','beirut',1,'mohamad',1500,'7-feb-1999')

答案 1 :(得分:1)

似乎有两个不同的问题;

  • 您需要在Oracle中使用'引用文字字符串,双引号用于引用区分大小写的对象名称。
  • 默认情况下,您的数据库似乎没有使用7-Feb-1999日期格式,因此您必须告诉它您正在使用的格式。

总而言之,查询应该是;

INSERT INTO employee 
  VALUES (1, 1, 'cola', 'beirut', 1, 'mohamad', 1500, 
          TO_DATE('7-feb-1999', 'DD-MON-YYYY'));

An SQLfiddle to test with