sábado, 1 de junio de 2013

REGISTRAR Y OBTENER UN CAMPO DE TIPO 'RAW' EN ORACLE:

Buen día en esta oportunidad mostraré un forma para poder REGISTRAR y OBTENER un campo de tipo RAW en ORACLE.

Muchas veces las empresas utilizan el tipo RAW para registrar información importante como password. Este tipo de dato es de tipo Binario y esta representada en Hexadecimal.

Oracle maneja un paquete que facilita su manejo llamado: UTL_RAW, la sintaxis para su manipulación es la siguiente:

Supongamos que tenemos la siguiente tabla:


 --TABLE:
 CREATE TABLE TB_ENCRIPTACION(
    ID               NUMBER,
    TEXTO_ORIGINAL        VARCHAR2(100),
    TEXTO_ENCRIPTADO  VARCHAR2(100),
    KEY_ENCRIPTACION   RAW(32)
 )


Para registrar datos deberiamos hacer lo siguiente:

 --INSERTs:
 INSERT INTO TB_ENCRIPTACION VALUES( 1,
                                     'JAVAMAN',
                                     'fJPHMyGaPqw=',
                                     UTL_RAW.CAST_TO_RAW( 'I6N8X7Y6J7U2P8D4P1M4L7I5F4Y8K5F5' )
                                   );


 INSERT INTO TB_ENCRIPTACION VALUES( 2,
                                     'CESAR RICARDO GUERRA ARNAIZ',
                                     'J3cW/OT/squ0ZtkDNyKOh6aHUGjFN2ukdWDu1FJEMe0=',
                                     UTL_RAW.CAST_TO_RAW( 'G5R3Q3K2F7R1M2N4O3W5D3X1R6J7J6X7' )
                                   );


Si por ejemplo queremos ingresar el capo: KEY_ENCRIPTACION, de manera directa, obtendremos un error de tipo ORA.

Debido a ello para obtener los datos fecilmente realizamos lo siguiente:

 --SELECTs:

 SELECT X.ID,
        X.TEXTO_ORIGINAL,
        X.TEXTO_ENCRIPTADO,
        X.KEY_ENCRIPTACION,
        UTL_RAW.CAST_TO_VARCHAR2( X.KEY_ENCRIPTACION ) AS KEY_STRING
 FROM   TB_ENCRIPTACION X;


Este QUERY realizaría un PARSER para obtener el texto correcto dentro del campo de tipo RAW.

 Bueno es todo por ahora.


Saludos


No hay comentarios:

Publicar un comentario