我有一个要求,我想验证列值,如下所示。
- 长度应为 18 个字符。
- 它不应接受任何特殊字符。
以下是该列的正确值。
INAPDNCHXXXXTW6002
获取该值的查询如下
SELECT RJ_NETWORK_ENTITY_ID FROM NE.STRUCTURE WHERE RJ_SAPID = P_SAPID;
那么,我怎样才能在数据库级别做到这一点
最佳答案
检查值是否符合您的要求的一种方法是使用正则表达式:
REGEXP_LIKE(col, '^[a-z0-9]{18}$', 'i') ;
如果您想检查 RJ_NETWORK_ENTITY_ID
列是否满足这些要求,您可以使用:
SELECT RJ_NETWORK_ENTITY_ID FROM NE.STRUCTURE
WHERE
RJ_SAPID = P_SAPID
and
REGEXP_LIKE(RJ_NETWORK_ENTITY_ID, '^[a-z0-9]{18}$', 'i');
关于mysql - 在 PL SQL 中验证数据库级别的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112661/