【发布时间】:2014-05-17 09:41:06
【问题描述】:
我是 Oracle 的新手,我正在尝试创建一个表,但我不断收到无效字符警告。我已经尝试删除它并重新输入它并检查了任何无效字符,但我似乎找不到任何字符。 我的表创建代码是:
CREATE TABLE DEPARTMENT (
DNUMBER CHAR(1) PRIMARY KEY,
DNAME VARCHAR2(20),
MGRSSN CHAR(11),
MGRSTARTDATE CHAR(10),
CONSTRAINT DEPARTMENT_FK FOREIGN KEY (MGRSSN) REFERENCES EMPLOYEE(SSN));
CREATE TABLE EMPLOYEE (
SSN CHAR(11) PRIMARY KEY,
FNAME VARCHAR2(20),
MINIT CHAR(1),
LNAME VARCHAR2(20),
BIRTHDATE CHAR(10),
ADDRESS VARCHAR2(30),
SEX CHAR(1),
SALARY INTEGER,
SUPERSSN CHAR(11),
DNO CHAR(1),
CONSTRAINT EMPLOYEE_FK1 FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN),
CONSTRAINT EMPLOYEE_FK2 FOREIGN KEY (DNO) REFERENCES DEPARTMENT (DNUMBER));
【问题讨论】:
-
你是如何运行这个 SQL 的?使用 SQL*Plus? SQL开发者? PL/SQL 开发人员?蟾蜍? JDBC?还有什么?
-
我在小提琴中测试了你的陈述。我得到的只有表不存在异常。但这确实意味着您的语句已经成功解析。
-
不相关:
BIRTHDATE和MGRSTARTDATE应该是正确的DATE列,不要不要对日期使用char数据类型。永远不要在字符列中存储日期。 -
Oracle XE 的 HTML 界面不允许您运行多个语句。您应该改用适当的 SQL 客户端。
-
您在创建之前引用了一个表,稍后添加约束sqlfiddle.com/#!4/f92cd