Oracle PL/SQL输入验证技术/UTIL

Oracle PL/SQL输入验证技术/UTIL,oracle,forms,plsql,Oracle,Forms,Plsql,你能给我推荐一下常用的PL/SQL输入验证技术/实用程序吗:仅限数字、字符串大小限制、电子邮件地址、SSN等。我在google上搜索了一些,但没有找到任何库包或源代码。我不想重新发明轮子:) 感谢您的帮助。如果我需要验证“mysite.com?foo=123&bar=xyz”之类的字符串,根据oracle和/或表单的版本,我会防御性地使用regexp\u 不完全是你想要的,但是有一个有趣的方法,类型 有关更多公共和有用的PL/SQL脚本: 什么版本的Oracle?什么版本的表格?您是否正在尝试验

你能给我推荐一下常用的PL/SQL输入验证技术/实用程序吗:仅限数字、字符串大小限制、电子邮件地址、SSN等。我在google上搜索了一些,但没有找到任何库包或源代码。我不想重新发明轮子:)


感谢您的帮助。

如果我需要验证“mysite.com?foo=123&bar=xyz”之类的字符串,根据oracle和/或表单的版本,我会防御性地使用regexp\u

不完全是你想要的,但是有一个有趣的方法,类型

有关更多公共和有用的PL/SQL脚本:

什么版本的Oracle?什么版本的表格?您是否正在尝试验证表单中的数据?或者在数据库的存储过程?Oracle-11中,需要验证存储过程中的输入“foo&bar”,如:“”。谢谢。科多:谢谢你的建议,科多。如果我找不到任何实用工具,我会使用这种技术。嗯。。。这和我想要的有点不同。不过还是谢谢你。
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;
/