【发布时间】:2012-10-16 20:05:26
【问题描述】:
我有一个这样定义的自定义类型:
CREATE TYPE myType_t AS VARRAY(2) of char(10);
是否可以在 char(10) 类型上添加检查约束,以便 myType_t 项目遵守某个正则表达式?我试过像
CREATE TYPE myType_t AS VARRAY(2) of char(10)
( constraint c_myType_format check ( regexp_like(IdontKnowWhatToWriteHere, '[:digit:]{8}'));
这显然行不通...我想也许可以为
定义另一种类型AS VARRAY(2) of myOtherType_t
但我又不知道在哪里放置正则表达式检查。
是的,我也尝试将约束添加到将使用我的类型的表中,但我找不到正确的语法。
【问题讨论】:
-
为什么不把
char(10)改成number(8)呢?诚然,不会阻止负数,但... -
好吧,我认为将它存储为数字的含义不同,尽管我知道这是可能的。
-
很公平 - 我同意如果它实际上不是数字,而是一串数字,最好不要使用数字数据类型。在这种情况下,我会回避 TYPE,只对数据库列施加约束。
标签: oracle constraints