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