【问题标题】:add check constraint, get invalid data type error添加检查约束,获取无效数据类型错误
【发布时间】:2013-05-04 11:09:49
【问题描述】:

使用 Oracle SqlDeveloper

表 T 有两列 身份证号码) 描述 (VARCHAR2)

我尝试以下查询来添加支票:

ALTER TABLE T
ADD CONSTRAINT 100chk CHECK (ID BETWEEN 0 AND 100);

错误报告:SQL 错误:ORA-00902:无效数据类型 00902. 00000 - “无效数据类型” *原因:
*行动:

ID 列是数字数据类型 - 为什么不让我添加该约束?

【问题讨论】:

    标签: sql oracle oracle-sqldeveloper


    【解决方案1】:

    Oracle 可能对您的约束名称100chk 感到困惑。有效名称以字母开头。您可以在无效名称周围加上双引号,Oracle 会接受它,但这通常被认为是一个坏主意。

    尝试将约束命名为 chk100

    ALTER TABLE T ADD CONSTRAINT chk100 CHECK (ID BETWEEN 0 AND 100);
    

    Oracle 的对象命名规则是here。此链接适用于 10.2,但该信息也适用于 11.x。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多