oracle中分15位和18位判断身份证号码中的出生年月日是否规范
时间: 2024-04-03 12:30:34 浏览: 58
在Oracle中可以使用正则表达式来判断身份证号码中的出生年月日是否规范,对于15位和18位身份证号码,正则表达式的格式不同。以下是一个示例:
```
-- 判断15位身份证号码中的出生年月日是否规范
SELECT CASE
WHEN REGEXP_LIKE('410305800101001',
'^[1-9]\\d{5}\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}$')
THEN '规范的身份证号码'
ELSE '非规范的身份证号码'
END AS result
FROM dual;
-- 判断18位身份证号码中的出生年月日是否规范
SELECT CASE
WHEN REGEXP_LIKE('61010419800101123X',
'^[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dX]$')
THEN '规范的身份证号码'
ELSE '非规范的身份证号码'
END AS result
FROM dual;
```
在上面的示例中,分别使用了两个正则表达式来判断15位身份证号码和18位身份证号码中的出生年月日是否规范。如果返回结果为“规范的身份证号码”,则说明身份证号码中的出生年月日是规范的;如果返回结果为“非规范的身份证号码”,则说明身份证号码中的出生年月日不规范。
阅读全文