Я использую регулярное выражение, чтобы узнать, является ли введенное пользователем значение буквенно-цифровым, допуская использование некоторых специальных символов.
Я использую следующий код, который отлично работает:
CREATE OR REPLACE PROCEDURE Validate_Inputstring (input_String IN VARCHAR2) AS
BEGIN
IF REGEXP_LIKE(input_String,'^[A-Z0-9a-z,+-?@]*$') THEN
DBMS_OUTPUT.PUT_LINE('U have entered alphanumeric chars--->'|| input_String);
ELSE
DBMS_OUTPUT.PUT_LINE('U NOT have entered alphanumeric chars---->'|| input_String);
END IF;
END;
Вышеуказанные программы работают нормально.
Теперь моя проблема в том, что эти специальные символы являются динамическими, и эти значения зависят от приложения.
Другими словами, они хранятся в базе данных и различаются для каждого приложения.
Например, для приложения A это может быть , + - ? @
, для B это может быть { ^ & '
.
Можно ли написать регулярное выражение так, чтобы оно одновременно проверяло буквенно-цифровые символы и эти динамические специальные символы?
Я пробовал что-то вроде
CREATE OR REPLACE PROCEDURE Validate_Inputstring (input_String IN VARCHAR2) AS
special_symbols VARCHAR2(300);
BEGIN
special_symbols :=',+-?';
IF REGEXP_LIKE(input_String,'^[A-Z0-9a-zspecial_symbols]*$') THEN
DBMS_OUTPUT.PUT_LINE('U have entered alphanumeric chars--->'|| input_String);
ELSE
DBMS_OUTPUT.PUT_LINE('U NOT have entered alphanumeric chars---->'|| input_String);
END IF;
END;
но это не работает. У кого-нибудь есть решение для этого? Заранее спасибо!