Cómo descifrar el proceso de cifrado Oracle Warp
La extensión de archivo predeterminada para input_file es sql. El nombre predeterminado de archivo_salida es archivo_entrada.plb. Por tanto, estos comandos son equivalentes.
wrapiname=/mydir/myfile
wrapiname=/mydir/myfile.sql oname=/mydir/myfile.plb
Este ejemplo especifica un input_file diferente. la extensión de archivo especifica un nombre diferente para el archivo_salida:
wrapiname=/mydir/myfile.src oname=/yourdir/yourfile.out
Los pasos para usar Wrap son los siguientes:< / p>
(1) Guarde la declaración SQL que queremos cifrar como texto SQL.
(2) Utilice wrap para procesarlo, especifique el sql de entrada, que es nuestra primera pregunta, y luego especifique la ruta y el nombre del archivo de salida. De forma predeterminada, la extensión de salida es plb.
(3) Ejecute la segunda parte del sql empaquetado, es decir, el archivo plb, y luego cree el objeto.
Ejemplo 1: función de ajuste
--Función
CREAR O REEMPLAZAR FUNCIÓN F_DAVE (
n int
) REGRESAR cadena
ES
COMENZAR
SI n = 1 ENTONCES
REGRESAR '¡Dave es DBA! ';
ELSIF n = 2 THEN
RETURN '¡Dave viene de AnQing!';
ELSE
RETUR 'Dave viene de HuaiNing! ';
END IF;
END;
/
SYS@dave2(db2)gt; seleccione F_DAVE(4) de dual; ;
F_DAVE(4)
------------------ ------------- --- ----------------------------------------------- ---
¡Dave es de Huaining!
Por cierto: alguien en el grupo me preguntó hoy por qué Anqing está incluido en los ejemplos de mi blog, porque soy de Huaining y Anqing.
[oracle@db2 ~]$ pwd
/home/oracle
[oracle@db2 ~]$ cat dave.sql
CREAR O REEMPLAZAR FUNCIÓN F_DAVE (
n int
) RETURNstring
ES
BEGIN
SI n = 1 ENTONCES
RETURN '¡Dave es DBA!';
ELSIF n = 2 ENTONCES
RETURN '¡Dave viene de AnQing!'.
ELSE
REGRESAR '¡Dave es de Huaining! ';
END IF;
END;
/
[oracle@db2 ~]$ wrap iname=dave.sql
PL/ SQL Wrapper: Versión 10.2.0.1.0 - Producción el jueves 18 de agosto a las 22:59:14 de 2011
Copyright (c) 1993, 2004, Oracle.
Procese dave.sql a dave.plb
[oracle@db2 ~]$ ls
bifile.bbd dave.plb dave.sql Desktop log.bbd
[oracle@db2 ~]$ cat dave.
CREAR O REEMPLAZAR FUNCIÓN F_DAVE envuelto
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
10de7
S9NWrpt8q6tkKEMxCcfYJz2aLF4wxDQLZ4VfC9AkE6OnV4ydypXGhveHcDg8UXy98WIg6xR
rtc/BRdQJjutbna/9 g0LlaSx87/znV y926S1AeC0IRi/tjPJTyvJereDdk8mftMo8QMjV
fw0xXn0zVagAawwNVhSAiy/JPTMKkrBkC5ruMwQSTe6JQNq7Q2QtJV0hgQ ou0 rYuet4/gJ5B
wAj75ph6EA==
/
SYS@dave2(db2)gt; @dave.plb
-- Llame a la función nuevamente y se ejecuta normalmente:
SYS@dave2(db2)gt; (4) de dual;
F_DAVE(4)
--------------------- ------- ------------------------------------------- -------
¡Dave es de Huaining!
--Mire el código fuente de la función, está cifrado:
SYS@dave2(db2)gt; seleccione texto de dba_source donde nombre='F_DAVE'; p>
TEXTO
------------------------------------- ----- ----------------------------------------
FUNCTION F_DAVE envuelto
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd<
abcd
abcd
abcd
abcd p>
TEXTO
--------------------------------- ---- -----------------------
---------- -----------
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
10d e7
S9NWrpt8q6tkKEMxCcfYJz2aLF4wgxDQLZ4VfC9AkE6OnV4ydypXGhveHcDg8UXy98WIg6xR
crtc/BRdQJjutbna/9 g0LlaSx87/znV y926S1AeC0IRi/ tjPJTyvJereDd k8mft Mo8QMjV
TEXTO
-------------- ------------------------------------------------- - ---------------
fw0xXn0zVagAawwNVhSAiy/JPTMKkrBkC5ruMwQSTe6JQNq7Q2QtJV0hgQou0rYuet4/gJ5B
wAj75ph6EA==