2011-07-26 3 views
3

일반적인 PL/SQL 입력 유효성 검사 기술/유틸리티를 제안 해 주시겠습니까? 숫자 만, 문자열 크기 제한, 전자 메일 주소, SSN 등. 몇 가지 Google 검색을 만들었지 만 didn 라이브러리 패키지 나 소스 코드를 찾을 수 없습니다. 나는 바퀴를 다시 발명하고 싶지 않다 :)PL/SQL 입력 유효성 검사 기술/utils

당신의 도움에 감사드립니다.

+1

무엇'regexp_like'에 대해 ...? – Codo

+1

오라클의 버전은 무엇입니까? 어떤 버전의 Forms입니까? Forms에서 데이터의 유효성을 검사하려고합니까? 또는 데이터베이스의 저장 프로 시저에 있습니까? –

+0

Oracle-11, 저장 프로 시저에서 "http://mysite.com?foo=123&bar=xyz"와 같이 "foo & bar"입력의 유효성을 검사해야합니다. 감사. – vadimk

답변

3

는 Oracle 및/또는 형태의 버전을 내가 "mysite.com?foo=123 & 바 = XYZ"

+0

답장을 보내 주셔서 감사합니다 janbom – vadimk

0

같은 문자열을 확인해야 할 것입니다 경우 내가 defenetly REGEXP_LIKE을 사용에 따라라는 이름의 스크립트있다 dbsmany.sql은 아마도 {ORACLE_HOME} /rdbms/admin/dbmsany.sql에서 유용 할 수 있습니다.

당신이 찾고있는 것이 정확하지는 않지만 흥미로운 접근법 인 anydata 유형이 있습니다. 많은 공공 및 유용한 PL/SQL 스크립트를

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; 
/

: http://psoug.org/browse.htm

+0

음 ... 제가 찾고있는 것과는 조금 다릅니다. 그러나 어쨌든 고마워. – vadimk

관련 문제