【问题标题】:Automatic adjustment of a field in OracleOracle中字段的自动调整
【发布时间】:2018-06-26 08:32:09
【问题描述】:

您好,我正在尝试在 Oracle 18.1 (SQL Dev) 下创建表。

但我有一个错误“ORA-00906:缺少右括号”

CREATE TABLE DIM_TAB (
ID Number PRIMARY KEY,
TEST nvarchar2,
TEST_2 nvarchar,
DATE DATE not null 
);

如何在 Oracle 的 nvarchar(或 nvarchar2)中创建字段而不指定其大小? (我希望字段大小自动调整)

谢谢

【问题讨论】:

  • 不可能。没有长度限制,您不能使用nvarchar(或varchar)。如果您需要“无限”字符列,请使用 CLOB
  • 您所说的自动调整是什么意思?您只定义 VarChar 的最大长度,但实际大小会自动调整
  • ...这就是varcharnvarchar 中的'v' 的意思-Variable-length character string。您指定 最大 大小。 (另外你确定你真的想要nvarchar2吗?在大多数情况下varchar2是合适的。)
  • 另外,DATE 不能是列名(保留关键字)。使用"date""DATE"DATE_ 等。
  • 顺便说一下,表格有,而不是字段。

标签: oracle ddl create-table nvarchar


【解决方案1】:

你有三个问题。一,您必须VARCHAR2NVARCHAR2 列指定最大字符数。如果您有超过 4000 字节(不是字符)的数据,则只需使用 CLOB。其次,没有NVARCHAR 数据类型。第三,您不能创建名为“日期”的列,因为这是一个保留字。你想要的是这样的:

CREATE TABLE DIM_TAB (
    id        number PRIMARY KEY,
    test      nvarchar2(30),
    test_2    nvarchar2(30),
    the_date  date not null 
);

就我个人而言,我会使用 NUMBER(10) 作为您的 ID,但这是一个小问题。

您可能想阅读NCHAR and NVARCHAR data types

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2013-09-18
    • 2015-05-03
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多