У меня есть функция, которая должна исключить все нестроковые символы, logi c функции состоит в том, что я передал строку в качестве параметра и в if сравнивает, есть ли какой-либо странный символ внутри переданного атрибута, если это true возвращает ошибку, а если не возвращает атрибут, это то, что он должен делать, но у меня возникают проблемы при этом
Я использую структуру ADT, и моя функция предназначена для проверки вставок из моих Тип ADT
Это мой ADT, в котором я определяю свои атрибуты
CREATE OR REPLACE TYPE datos_basicos_personas AS OBJECT(
primer_nombre varchar(15),
STATIC FUNCTION valida_primer_nombre(primer_nombre varchar) RETURN varchar
);
Функция, которая должна возвращать атрибут, если не содержит нестроковых символов
CREATE OR REPLACE TYPE BODY datos_basicos_personas IS
STATIC FUNCTION valida_primer_nombre(primer_nombre varchar) RETURN varchar
IS
BEGIN
IF regexp_like(primer_nombre, '^[a-zA-Z]') THEN
return (primer_nombre);
ELSE
RAISE_APPLICATION_ERROR(-20001, 'Error: El Primer nombre debe contener solo letras.');
END IF;
END;
END;
Моя таблица, которая имеет один атрибут моего типа ADT (datos_basicos_personas)
CREATE TABLE Persona (
id NUMBER PRIMARY KEY,
datos_basicos datos_basicos_personas
);
* Вставка, моя вставка имеет номер 9, который не должен позволять мне вставлять *
INSERT INTO Persona values (2,datos_basicos_personas(datos_basicos_personas.valida_primer_nombre('H9ilery')));