No conozco con precision lo que es el NIF, pero según la descripcion del algoritmo, sería mas o menos así:
Código SQL:
Ver originalDECLARE
dni NUMBER:=53029797;
numero NUMBER:=23;
resultado VARCHAR2(50);
BEGIN
resultado := dni||SUBSTR('TRWAGMYFPDXBNJZSQVHLCKET',MOD(dni,numero)+1,1)
dbms_output.put_line (resultado);
END;