jueves, 4 de julio de 2013

Oracle: normalizar issn mediante sql o pl/sql


Función rápida para normalizar un issn, de modo que tenga 8 caracteres y no tenga guión:

select  lpad(REGEXP_REPLACE(issn,'[^0-9X,]',''),8,'0') issn_normalizado from tabla

Si tuviesemos un campo de entrada  tipo  ISSN, ISSN podríamos usar algo así

select title,issn,lpad(  regexp_substr( REGEXP_REPLACE(issn,'[^0-9X,]',''), '^[^ ,]*') ,8,'0')  issn1,
lpad(  regexp_substr( REGEXP_REPLACE(issn,'[^0-9X,]',''), '[^ ,]*$') ,8,'0') issn2
from tabla
lo único malo que si sólo hay un ISSN saldrá duplicado.