我们有一个包含以下结构的表:
CREATE TABLE XREF_WORKER_EMPLOYME_2(
Siebel-01 VARCHAR2(2000),
ROW_ID VARCHAR2(48) NOT NULL,
);
表创建失败,错误如下:
ORA-00902: invalid datatype
我们需要保留名为“Siebel-01”的列。 请建议如何使用此结构创建表,以及在列名中插入数据或使用“ - ”查询表时会出现哪些进一步的问题。
答案 0 :(得分:2)
将名称用双引号括起来。
CREATE TABLE XREF_WORKER_EMPLOYME_2( "Siebel-01" VARCHAR2(2000), ROW_ID VARCHAR2(48) NOT NULL );
但您也需要针对此列引用大多数查询。如果你真的不能避免这种情况,请仔细考虑:)
此外,您需要删除的列定义末尾还有一个额外的逗号。
答案 1 :(得分:0)
comma
关键字后面有一个NOT NULL
,其中一个列名称中有一个连字符,需要处理,如果你想要的话,而不是不受欢迎的
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 );
答案 2 :(得分:0)
您已在Siebel-01中使用连字符而非下划线,并在结尾处删除逗号(,) ..
试试这个
CREATE TABLE XREF_WORKER_EMPLOYME_2(
Siebel_01 VARCHAR2(2000),
ROW_ID VARCHAR2(48) NOT NULL
);
答案 3 :(得分:0)
你不能这样做,因为Oracle不允许( - )连字符或减号签到数据库名......
请点击此链接.. Schema Object Naming Rules