PL / SQL输入验证技术/ utils

时间:2011-07-26 17:59:21

标签: oracle forms plsql

你能否建议我常见的PL / SQL输入验证技术/实用程序:仅限数字,字符串大小限制,电子邮件地址,SSN等。我做了一些谷歌搜索,但没有找到任何库包或来源码。我不想重新发明轮子:)

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

取决于oracle和/或表单的版本,如果我需要验证像“mysite.com?foo=123&bar=xyz”这样的字符串

,我将无法使用regexp_like

答案 1 :(得分:0)

有一个名为dbsmany.sql的脚本,或许你可以在{ORACLE_HOME} /rdbms/admin/dbmsany.sql中找到它有用

不正是您正在寻找的,但有一个有趣的方法,anydata类型。

CREATE OR REPLACE FUNCTION getData(p_x IN sys.anyData)
RETURN VARCHAR2 IS 
 l_num      NUMBER;
 l_date     DATE;
 l_varchar2 VARCHAR2(4000); 
BEGIN
  CASE p_x.gettypeName
  WHEN 'SYS.NUMBER' THEN
    IF (p_x.getNumber(l_num) = dbms_types.success) THEN
      l_varchar2 := l_num;
    END IF;
  WHEN 'SYS.DATE' THEN
    IF (p_x.getDate(l_date) = dbms_types.success) THEN
      l_varchar2 := l_date;
    END IF;
  WHEN 'SYS.VARCHAR2' THEN
    IF (p_x.getVarchar2(l_varchar2) = dbms_types.success) THEN
      NULL;
    END IF;
  ELSE
    l_varchar2 := '** unknown **';
  END CASE;

  RETURN l_varchar2;
END getData;
/

有关更多公共和有用的PL / SQL脚本: http://psoug.org/browse.htm