мы используем формы оракула... мы должны защитить (или) заблокировать поле текстового элемента от специальных символов. как ( !@#$%^&*) пожалуйста, пришлите несколько руководств.... заранее спасибо...
С уважением, Виджай
мы используем формы оракула... мы должны защитить (или) заблокировать поле текстового элемента от специальных символов. как ( !@#$%^&*) пожалуйста, пришлите несколько руководств.... заранее спасибо...
С уважением, Виджай
Когда ваше текстовое поле как введенный текст, у вас должна быть функция, которая проверяет весь ввод.
В этой функции у вас есть диапазон недопустимых значений. Этот диапазон сделан в ASCII.
Вы можете использовать свойство маски формата, например 999,99.
Какая версия форм?
Метод грубой силы:
v_prohibited_chars VARCHAR2(100) := '!@#$%^&*';
v_result VARCHAR2(4000);
...
-- strip prohibited characters
v_result := TRANSLATE(:form_field,'A'||v_prohibited_chars,'A');
-- if anything was stripped, lengths will differ
IF LENGTH(:form_field) <> LENGTH(v_result) THEN
error...
END IF
Если я правильно понимаю ваш комментарий, вы хотите иметь возможность фильтровать специальные символы из поля формы?
Приведенный выше код делает это и помещает результат в v_result. Таким образом, если у вас есть входное значение «ABC#DEF#», а ваша маска фильтра — «!@#$%^&*», то после выполнения TRANSLATE вашим результатом будет «ABCDEF». Затем вы можете переназначить это значение в поле формы. Если вы просто хотите убрать символ без вывода сообщений, вы можете пропустить проверку LENGTH и просто назначить вывод TRANSLATE обратно в поле формы:
:form_field := TRANSLATE(:form_field,'A'||v_prohibited_chars,'A');
Что делает TRANSLATE, так это сверяет символы в первом параметре с символами во втором параметре. Когда он находит совпадение, он переводит этот символ в соответствующий символ в третьем параметре. Если в третьем параметре нет соответствующих символов для одного во втором, то символ преобразуется в NULL. Если символ не появляется во втором параметре, он остается неизменным. Таким образом, символ «А» преобразуется в «А», а все остальные символы в маске преобразуются в NULL. Третий параметр не может быть NULL, поэтому фиктивный перевод «A» в «A».