我目前正在使用Oracle SQL Developer 11g。任何人都可以告诉我如何为我的列创建数据格式(然后将它们放在CREATE TABLE命令中):
COACH[0-9][0-9][0-9][0-9]
例如:COACH0107
(得到它) 答案 0 :(得分:2)
不,你真的不应该。 Oracle以自己的特殊格式存储日期。然后我们可以以我们选择的任何格式显示这些值。这只是在客户端(显示)环境中应用所需掩码的问题。 Find out more"所以我想我应该创建自己的DATE类型"
至于强制执行Coach ID的格式,就像大多数有经验的数据库开发人员一样,我不喜欢这样的密钥。他们总是比他们值得更麻烦。但是,有些客户坚持要求。
强制执行数据格式的最佳方法是使用检查约束。使用TRANSLATE()
将任意数字转换为标准数字......
alter table your_table
add constraint coach_id_format check
( translate(coach_id, '0987654321', '9999999999') = 'COACH9999')
每当有人试图保留一个不包含' COACH'的ID时,这将抛出异常。接着是四位数。对于更复杂的面具,你可以使用a regular expression,但这里真的没有必要。