Separar los numeros y letra de un DNI es facil.
Esto te saca los numeros
Código SQL:
Ver originalSELECT substr('DNI_COMPLETO',1,LENGTH('DNI_COMPLETO')-1)
FROM dual;
Y esto la letra :
Código SQL:
Ver originalSELECT substr('DNI_COMPLETO',LENGTH('DNI_COMPLETO'))
FROM dual
Unicamente te quedaría multiplicar cada resultado por 1. Si en el primer caso no te da error, son numeros ( CORRECTO ) y si en el segundo caso te da error, es una letra ( CORRECTO ), a partir de ahí, ancha es Castilla.
De todas maneras ten en cuenta, que un DNI puede tener 6, 7 u 8 numeros, con lo cual eso de "validar longitud", no se..................