Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to Export APEX Pages

Joseph UpshawAug 17 2012 — edited Aug 20 2012
First of all, not wanting to harp on an ancient thread but, my God, why doesn;t APEX provide a way to export the application pages without having to do it one-page-at-a-time via the GUI?!

So; accepting this inexplicable road block, and bowing to our SDLC controls, I tried to write my own PL/SQL to do this.
CREATE OR REPLACE PACKAGE BODY US_RISK_DEV.RISK_APEX_UTILITY
AS

    FUNCTION EXPORT_APPLICATION_PAGES( as_OracleDirectoryName    IN ALL_DIRECTORIES.DIRECTORY_NAME%TYPE,
                                       an_ApexApplicationID      IN APEX_040100.APEX_APPLICATION_PAGES.PAGE_ID%TYPE )
    RETURN NUMBER
    IS
        
        TYPE TAB_PAGE_ID IS TABLE OF APEX_040100.WWV_FLOW_STEPS.ID%TYPE
            INDEX BY BINARY_INTEGER;

        lclb_PageExport     CLOB;
            
        ltb_PageID          TAB_PAGE_ID;   
        
        ls_ExportFileName   VARCHAR2(128);
        
        CURSOR lcsr_GetApplicationPageIDs IS
            SELECT P.ID PAGE_ID
            FROM   APEX_040100.WWV_FLOW_STEPS P
            WHERE FLOW_ID = an_ApexApplicationID;
            
    BEGIN
        
        OPEN lcsr_GetApplicationPageIDs;
        FETCH lcsr_GetApplicationPageIDs BULK COLLECT INTO ltb_PageID;
        CLOSE lcsr_GetApplicationPageIDs;
        
        FOR ln_PageNdx IN ltb_PageID.FIRST..ltb_PageID.LAST
        LOOP        
        
            lclb_PageExport := WWV_FLOW_UTILITIES.EXPORT_PAGE_TO_CLOB(  
                                                    p_application_id => an_ApexApplicationID, 
                                                    p_page_id        => ltb_PageID(ln_PageNdx) );
                   
            ls_ExportFileName := 'APP_' || an_ApexApplicationID || '_' || 
                                 'PAGE_' || ltb_PageID(ln_PageNdx) || '.sql';
                                                    
            DBMS_XSLPROCESSOR.CLOB2FILE( lclb_PageExport, 
                                            as_OracleDirectoryName,
                                            ls_ExportFileName, 0 );                                                    
                                                                                                                    
        END LOOP;
    
    END;        

END RISK_APEX_UTILITY;
However, when I run it, I get this error stack from down in the guts of the wrapped package:
>
ORA-20987: APEX - Application 101 not found logged in as database user JUPSHAW. - Contact your application administrator.
ORA-06512: at "APEX_040100.WWV_FLOW_ERROR", line 752
ORA-06512: at "APEX_040100.WWV_FLOW_ERROR", line 1064
ORA-06512: at "APEX_040100.WWV_FLOW_UTILITIES", line 9013
ORA-06512: at "US_RISK_DEV.RISK_APEX_UTILITY", line 32
ORA-06512: at line 10
>

I tried adding this into an application page to see if I could get in a security context that would make APEX happy but:

A. This defeats the whole purpose which is to be able to dump this out in an automated fashion and
B. Didn't work anyway. I get a page that changes my URL to: http://rv-in0-cerk-01.intcx.net:7777/pls/apex/wwv_flow.accept. The output on this page is:
>
404 Not Found

The requested URL /pls/apex/wwv_flow.accept was not found.
>

How do I get around this?

-Joe

APEX 4.1.1.00.23
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 17 2012
Added on Aug 17 2012
14 comments
2,133 views