CREATE OR ALTER FUNCTION EXTRACT_NUMBERS(INPUT_STR VARCHAR(255))
RETURNS VARCHAR(255)
AS
DECLARE VARIABLE RESULT_STR VARCHAR(255);
DECLARE VARIABLE CHAR_POS INTEGER;
DECLARE VARIABLE CURRENT_CHAR CHAR(1);
BEGIN
  RESULT_STR = '';
  CHAR_POS = 1;

  WHILE (CHAR_POS <= CHAR_LENGTH(INPUT_STR)) DO
  BEGIN
    -- Extrae el carácter en la posición actual
    CURRENT_CHAR = SUBSTRING(INPUT_STR FROM CHAR_POS FOR 1);
    
    -- Verifica si el carácter es un número
    IF (CURRENT_CHAR BETWEEN '0' AND '9') THEN
      RESULT_STR = RESULT_STR || CURRENT_CHAR;

    -- Avanza a la siguiente posición
    CHAR_POS = CHAR_POS + 1;
  END

  -- Retorna la cadena con solo números
  RETURN RESULT_STR;
END

-----
ALTER TABLE ALUMNOS_INGRESANTES ADD CONSTRAINT UNQ_DOCUMENTO UNIQUE (DOCUMENTO);