Warning: Declaration of Suffusion_MM_Walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /DISK2/WWW/plsql.cz/www/wp-content/themes/suffusion/library/suffusion-walkers.php on line 39
Nov 292013
 

Tak si projíždím APEX a narazil jsem tam na funkcionalitu, která by se mi vcelku líbila v PL/SQL. Konkrétně vytvoření API package nad tabulkou (procedury na update, insert). Není problém si na to napsat script či ho někde sehnat, nicméně když už jsem to tam viděl.. tak mi napadlo, že by bylo fajn to umět provolat. Když jsem se podíval do packages pod uživatelem APEX, tak patrně zodpovědný za tuto funkcionalitu je package wwv_flow_generate_api. Který však obsahuje pouze jednu funkci (create_api), která rozhodně negeneruje kód, to byla ale jen specifikace balíku wwv_flow_generate_api. Když ovšem utilitou na unwrap kódu vezmu body, potkávám funkci, která se mi líbí:

FUNCTION GENERATE_CODE(P_APP_NAME VARCHAR2, P_TABLE_LIST TABLE_LIST_TYPE, P_OWNER VARCHAR2, P_TYPE VARCHAR2) RETURN SYS.DBMS_SQL.VARCHAR2A IS..

Čímž to svým způsobem přestává být zajímavé.  Ale zagooglil jsem jak vlastně takový unwrap tool funguje a narazil jsem na úžasnou přednášku, která se tím zabývá a to tak, že vcelku podrobně. Navíc odhaluje jak vlastně taková kompilace funguje, včetně toho kam se to ukládá do systémových tabulek Oracle atd.

Autor: Pete Finnigan
Zdroj: http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Finnigan.pdf
Download: BH-US-06-Finnigan

Výše uvedené PDF má na mé stupnici pejska 10 z 10 možných hébiček ;)

 Posted by at 06:22

 Leave a Reply

(required)

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>