SQL>
SQL> create table test(ph varchar(20));
Table created
SQL> alter table test add constraint ck_test check(not regexp_like(ph, '[^0-9]'));
Table altered
SQL> insert into test values('111111');
1 row inserted
SQL> insert into test values('A1111');
insert into test values('A1111')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('ABC');
insert into test values('ABC')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('111A');
insert into test values('111A')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('111AA111');
insert into test values('111AA111')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('中国人民');
insert into test values('中国人民')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> select * from test;
PH
--------------------
111111
SQL> drop table test purge;
Table droppedSQL>
SQL> create table test(ph varchar(20));
Table created
SQL> alter table test add constraint ck_test check(not regexp_like(ph, '[^0-9]'));
Table altered
SQL> insert into test values('111111');
1 row inserted
SQL> insert into test values('A1111');
insert into test values('A1111')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('ABC');
insert into test values('ABC')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('111A');
insert into test values('111A')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('111AA111');
insert into test values('111AA111')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('中国人民');
insert into test values('中国人民')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> select * from test;
PH
--------------------
111111
SQL> drop table test purge;
Table droppedSQL>
为什么 不是 not regexp_like(ph, '[^0-9]+') 一个或多个?
[^0-9]不是第一位为非数字吗?
为什么 不是 not regexp_like(ph, '[^0-9]+') 一个或多个?
[^0-9]不是第一位为非数字吗?^ 第一位
[^] 中括号里是非操作加不加那个+一样,有数字以外就不行呗