2014-02-14 22 views
1

我们与结构如下表:ORA-00902:无效的数据类型 - 列名称包含连字符

CREATE TABLE XREF_WORKER_EMPLOYME_2(
    Siebel-01 VARCHAR2(2000), 
    ROW_ID VARCHAR2(48) NOT NULL, 
); 

创建表与以下错误而失败:

ORA-00902: invalid datatype 

我们需要保持名为“Siebel-01”的列。 请建议如何使用此结构创建表格,以及在列名称中插入数据或使用“ - ”查询表格时还会遇到什么问题。

+0

@downvoters:你应该等待至少5分钟的等待时间回答或问题。 –

回答

2

将名称放在双引号中。

CREATE TABLE XREF_WORKER_EMPLOYME_2("Siebel-01" VARCHAR2(2000), ROW_ID VARCHAR2(48) NOT NULL); 

但是,您需要引用大多数查询来对付这一列。仔细考虑一下,如果你真的无法避免这种情况:)

另外,在需要删除的列定义的最后还有一个额外的逗号。

0

你有commaNOT NULL关键字,而且也列名,这需要一个连字符进行处理,如果你想hyphern而不是undesrcore

CREATE TABLE XREF_WORKER_EMPLOYME_2(Siebel-01 VARCHAR2(2000), ROW_ID VARCHAR2(48) NOT NULL,); 

删除逗号,有您的DDL这样

CREATE TABLE XREF_WORKER_EMPLOYME_2(Siebel_01 VARCHAR2(2000), ROW_ID VARCHAR2(48) NOT NULL); 

OR

CREATE TABLE XREF_WORKER_EMPLOYME_2("Siebel-01" VARCHAR2(2000), ROW_ID VARCHAR2(48) NOT NULL); 
+0

如果-1是缺少连字符,我编辑了我的答案。我在答案中强调的另一件事情没有错,虽然它只是“问题”的一部分, – Incognito

0

你在的Siebel-01使用的连字符代替下划线删除逗号(,)末..

试试这个

CREATE TABLE XREF_WORKER_EMPLOYME_2(
    Siebel_01 VARCHAR2(2000), 
    ROW_ID VARCHAR2(48) NOT NULL 
); 
0

你不能这样做因为Oracle不允许( - )连字符或负号登录数据库名称...

请按照此链接.. Schema Object Naming Rules

相关问题