[英]Regexp_Like to Validate Uppercase Characters [A-Z] and Numbers [0-9] Only
[英]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.