簡體   English   中英

帶有多個[0-9] [0-9]的PL / SQL REGEXP_LIKE

[英]PL/SQL REGEXP_LIKE with multiple [0-9][0-9]

我很難讓我的PL / SQL代碼工作。 我有一個約束,確保輸入5位數。 約束適用於任何不首先使用0的數字。 示例0,1,2,33,401工作但01,02,004不起作用。 如何才能輸入00009這樣的數字呢?

CREATE TABLE table1
(
 id NUMBER(5)
    CONSTRAINT idconstraint
        CHECK (REGEXP_LIKE(id, '[0-9][0-9][0-9][0-9][0-9]'))
);


INSERT INTO table1
VALUES ('00009');

您似乎有錯誤的約束或錯誤的數據類型。 如果需要前導零,請使用varchar2()char() 因為你似乎想要一個固定長度的字符串,試試這個:

CREATE TABLE table1 (
    id CHAR(5)
        CONSTRAINT idconstraint
            CHECK (REGEXP_LIKE(id, '[0-9][0-9][0-9][0-9][0-9]'))
);

您的問題是該字段被聲明為數字。 輸入字符串將轉換為數字,然后再轉換為字符串。 它在這個過程中失去了領先的0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM