Техника проверки входов PL / SQL / утилиты - PullRequest
3 голосов
/ 26 июля 2011

Не могли бы вы предложить мне общую методику / утилиту проверки ввода PL / SQL: только цифры, ограничение размера строки, адрес электронной почты, SSN и т. Д. Я провел поиск в Google, но не нашел ни одного пакета библиотеки или источникакод.Я не хочу изобретать велосипед :)

Спасибо за вашу помощь.

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

в зависимости от того, какую версию оракула и / или форм я бы определенно использовал regexp_like, если бы мне нужно было проверить строку вроде "mysite.com?foo=123&bar=xyz"

0 голосов
/ 02 августа 2011

Есть скрипт с именем 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...