gpt4 book ai didi

sql - 在 Oracle 中格式化表中的电话号码

转载 作者:行者123 更新时间:2023-12-02 03:09:46 28 4
gpt4 key购买 nike

我是 SQL 和 Oracle 的新手。我在玩甲骨文。我试图对电话号码进行限制,因此它只允许以特定方式插入电话号码。

下面是我的表格:

CREATE TABLE FIRSTTRY(
USERID CHAR(9) NOT NULL,
USERNAME VARCHAR(20) NOT NULL,
EMAILADDRESS VARCHAR(40),
PHONENUMBER VARCHAR(12),
PROFILEPICTURE BLOB,
PRIMARY KEY(USERID)
);

我这样限制电话号码:

ALTER TABLE FIRST_TRY
ADD CONSTRAINT FIRSTTRY_PHONENUMBER CHECK
(PHONENUMBER LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'
OR PHONENUMBER LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
OR PHONENUMBER LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]');

我像这样将值插入表中:

INSERT INTO FIRST_TRY VALUES (1,'ABCD','ABCD@YAHOO.COM','0504562893',NULL);

但是它给了我一个错误:这是错误:

02290. 00000 -  "check constraint (%s.%s) violated"
*Cause: The values being inserted do not satisfy the named check

*Action: do not insert values that violate the constraint.

有什么想法、建议吗?

最佳答案

ALTER TABLE FIRST_TRY
ADD CONSTRAINT FIRST_TRY_PHONENUMBER
CHECK (regexp_like (PHONENUMBER,'^(\d{3}-\d{3}-?\d{4}|\d{10})$'))

INSERT INTO FIRST_TRY VALUES (1,'ABCD','ABCD@YAHOO.COM','0504562893'  ,NULL);
INSERT INTO FIRST_TRY VALUES (2,'ABCD','ABCD@YAHOO.COM','050-4562893' ,NULL);
INSERT INTO FIRST_TRY VALUES (3,'ABCD','ABCD@YAHOO.COM','050-456-2893',NULL);

关于sql - 在 Oracle 中格式化表中的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40627987/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com