Mira este código; lo he creado al vuelo (es decir en un notepad sin validarlo) asi que puede contener algun error pero te le he puesto comentarios para que veas lo que he intentado hacer. Lo puedes declarar en un trigger o en un disparador de tu form si estas trabajando con ello.
Código PHP:
Create or Replace function es_caracter(mivariable in varchar2) return boolean is
miprueba varchar2(1) default null;
milongitud number(100);
mivalidador boolean default true;
micadena varchar2(100) default 'ABCDEFGHIJKLMNÑOPEQRSTUVWXYZáéíóúabcdefghijklmnñopqrstuvwxyz';
mibandera number(100);
begin
/* vemos la longitud de la cadena */
milongitud := length(mivariable);
/* hacemos un lazo desde 1 hasta la longitud de la cedana a verificar */
for Lcntr in 1..milongitud loop
/* extraemos un caracter a la vez de la cadena */
miprueba := SUBSTR(mivariable, Lcntr, 1);
/* verificamos que el caracter extraido se encuentre en el rango valido de caracteres*/
mibandera := instr(miprueba,micadena);
/* si el valor es erroneo declaramos que contiene caracteres no validos */
If mibandera <= o then
mivalidador := false;
end if;
end loop;
Return mivalidador;
End;