mysql - 在 PL SQL 中验证数据库级别的列

标签 mysql oracle validation plsql

我有一个要求,我想验证列值,如下所示。

    1. 长度应为 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/

相关文章:

javascript - 您应该在哪里验证/清理数据?

MYSQL 连接 2 个表和 2 个关系表

oracle - 从打包函数返回集合以在 select 中使用

单个查询中的 PHP 多值字符串

sql - 一个查询Oracle数据字典的程序

java - system.out.println 输出在 Oracle Java 类中的什么位置?

validation - 至少填写一个字段时,根据需要验证一组字段

python - 如何在 django 中停止用户已存在验证?

php - 较大的文件未使用 uploadify 上传和反射(reflect)

mysql - SQL 连接,对吗?左边 ?内?