【问题标题】:How to validate NIC Number using Oracle Forms?如何使用 Oracle Forms 验证 NIC 编号?
【发布时间】:2015-12-18 06:50:18
【问题描述】:

国民身份证号码如下所示:878552361V

它包含 9 位数字和一个大写字母 'V''X' 在末尾。

如何使用 Oracle Forms 11g 库对其进行验证?

【问题讨论】:

  • regexp_like(<column_name>, '\d+{9}(X|V)')

标签: oracle11g oracleforms


【解决方案1】:

在你的库中编写如下函数:

FUNCTION validate_nid (p_nid IN VARCHAR2)
   RETURN BOOLEAN
IS
   v   NUMBER;
   e EXCEPTION;
BEGIN
   IF LENGTH (p_nid) > 10
   THEN
      RAISE e;
   END IF;

   -- check if first 8 are alpa
   v := SUBSTR (p_nid, 1, 9);

   IF SUBSTR (p_nid, 10, 1) != 'V' Or
       SUBSTR (p_nid, 10, 1) != 'X'
   THEN
      RAISE e;
   END IF;

   RETURN TRUE;
EXCEPTION
   WHEN e
   THEN
      RETURN FALSE;
   WHEN OTHERS
   THEN
      RETURN FALSE;
END;

并在 when-validate-item 触发器中调用此函数,如下所示:

if not validate_nid('878552361V') then
  raise form_trigger_failure;
end if;

【讨论】:

    【解决方案2】:
      if (regexp_substr('876963256V','^[0-9]{9}[vV|xX]$')) is null then 
             raise form_trigger_failure;
        end if;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      相关资源
      最近更新 更多