一尘不染

检查字符串的约束以仅包含数字。(Oracle SQL)

sql

我有一列,说PROD_NUM,其中包含一个用零填充的“数字”。例如001004569。它们都是9个字符长。

我不使用数字类型,因为对数字的常规运算对这些“数字”没有意义(例如PROD_NUM * 2没有任何意义。)而且由于它们的长度相同,因此该列定义为CHAR(9)

CREATE TABLE PRODUCT (
    PROD_NUM CHAR(9) NOT NULL
    -- ETC.
)

我想限制PROD_NUM,以便它只能包含九位数字。没有空格,除了‘0’到‘9’之外没有其他字符


阅读 173

收藏
2021-03-10

共1个答案

一尘不染

REGEXP_LIKE(PROD_NUM, '^[[:digit:]]{9}$')
2021-03-10