ORA-00902:无效的数据类型 - 列名包含连字符



我们有一个结构如下的表格:

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 不允许 (-) 连字符或减号登录数据库名称...

请点击此链接..架构对象命名规则

最新更新