我们有一个结构如下的表格:
CREATE TABLE XREF_WORKER_EMPLOYME_2(
Siebel-01 VARCHAR2(2000),
ROW_ID VARCHAR2(48) NOT NULL,
);
表创建失败,出现以下错误:
ORA-00902: invalid datatype
我们需要保留名为"Siebel-01"的列。请建议如何使用此结构创建表,以及在列名中插入数据或查询带有"-"的表时会出现哪些进一步的问题。
将名称放在双引号中。
CREATE TABLE XREF_WORKER_EMPLOYME_2( "Siebel-01" VARCHAR2(2000), ROW_ID VARCHAR2(48) NOT NULL );
但是,您还需要引用针对此专栏的大多数查询。 如果您真的无法避免这种:),请仔细考虑
此外,在需要删除的列定义的末尾还有一个额外的逗号。
你在 NOT NULL
关键字后有一个comma
,并且在其中一个列名中有一个连字符,如果你想要 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 );
或
CREATE TABLE XREF_WORKER_EMPLOYME_2( "Siebel-01" VARCHAR2(2000), ROW_ID VARCHAR2(48) NOT NULL );
您在Siebel-01中使用了连字符而不是下划线,并在末尾删除逗号(,)。
试试这个
CREATE TABLE XREF_WORKER_EMPLOYME_2(
Siebel_01 VARCHAR2(2000),
ROW_ID VARCHAR2(48) NOT NULL
);
你不能这样做,因为 Oracle 不允许 (-) 连字符或减号登录数据库名称...
请点击此链接..架构对象命名规则