您好,登錄后才能下訂單哦!
Oracle Study之--Oracle正則表達(dá)式
案例要求:
建立check constraint ,要求字段輸入內(nèi)容必須是“00[number][number][a-z]”:
通過(guò)正則表達(dá)式建立如下約束(constraint):
17:20:13 SCOTT@ prod >desc card
Name Null? Type
----------------------------------------------------------------- -------- --------------------------------------------
ID NOT NULL VARCHAR2(10)
17:22:53 SCOTT@ prod >
17:19:05 SCOTT@ prod >alter table card drop constraint card_ck;
Table altered.
建立正則表達(dá)式:
17:19:19 SCOTT@ prod >alter table card add constraint card_ck check (REGEXP_LIKE(id,'00[[:digit:]]{2}[[:lower:]]{1}'));
Table altered.
Elapsed: 00:00:00.06
測(cè)試:
17:19:33 SCOTT@ prod >insert into card values ('0055a');
1 row created.
Elapsed: 00:00:00.01
17:19:50 SCOTT@ prod >insert into card values ('0065z');
1 row created.
Elapsed: 00:00:00.00
17:20:04 SCOTT@ prod >insert into card values ('1188a');
insert into card values ('1188a')
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.CARD_CK) violated
Elapsed: 00:00:00.01
正則表達(dá)式說(shuō)明:
表 5:REGEXP_LIKE 操作符
語(yǔ)法 | 說(shuō)明 |
REGEXP_LIKE(source_string, pattern [, match_parameter]) | source_string 支持字符數(shù)據(jù)類(lèi)型(CHAR、VARCHAR2、CLOB、NCHAR、NVARCHAR2 和 NCLOB,但不包括 LONG)。pattern 參數(shù)是正則表達(dá)式的另一個(gè)名稱(chēng)。match_parameter 允許可選的參數(shù)(如處理?yè)Q行符、保留多行格式化以及提供對(duì)區(qū)分大小寫(xiě)的控制)。 |
表 1:定位元字符
元字符 | 說(shuō)明 |
^ | 使表達(dá)式定位至一行的開(kāi)頭 |
$ | 使表達(dá)式定位至一行的末尾 |
表 2:量詞或重復(fù)操作符
量詞 | 說(shuō)明 |
* | 匹配 0 次或更多次 |
? | 匹配 0 次或 1 次 |
+ | 匹配 1 次或更多次 |
{m} | 正好匹配 m 次 |
{m,} | 至少匹配 m 次 |
{m, n} | 至少匹配 m 次但不超過(guò) n 次 |
表 3:預(yù)定義的 POSIX 字符類(lèi)
字符類(lèi) | 說(shuō)明 |
[:alpha:] | 字母字符 |
[:lower:] | 小寫(xiě)字母字符 |
[:upper:] | 大寫(xiě)字母字符 |
[:digit:] | 數(shù)字 |
[:alnum:] | 字母數(shù)字字符 |
[:space:] | 空白字符(禁止打?。?,如回車(chē)符、換行符、豎直制表符和換頁(yè)符 |
[:punct:] | 標(biāo)點(diǎn)字符 |
[:cntrl:] | 控制字符(禁止打印) |
[:print:] | 可打印字符 |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。