Maybe this an old hat but a lot of people don't know how to use and analyze APEX_COLLECTION properly. For myself it is a good reminder and saves me about 2 minutes instead of googling around.
In this example I will show you how to
- create an APEX_COLLECTION
- select the data in APEX reports
- analyze APEX_COLLECTION in SQL Developer
I will only show some basic steps. For a more detailed explanation please follow the official APEX documentation: APEX 5 - APEX_COLLECTION
Create an APEX_COLLECTION:
In this example I check if my collection exists and if not then I will create a new one and add some rows.
In this example I will show you how to
- create an APEX_COLLECTION
- select the data in APEX reports
- analyze APEX_COLLECTION in SQL Developer
I will only show some basic steps. For a more detailed explanation please follow the official APEX documentation: APEX 5 - APEX_COLLECTION
Create an APEX_COLLECTION:
In this example I check if my collection exists and if not then I will create a new one and add some rows.
begin -- http://www.oracle.com/global/de/community/tipps/collections/index.html if not apex_collection.collection_exists('DATA_COLLECTION') then apex_collection.create_collection('DATA_COLLECTION'); apex_collection.add_member( p_collection_name => 'DATA_COLLECTION', p_c001 => '1', p_c002 => 'APEX & SQL: THE Reporting Solution', p_c003 => 'Grundsätzlich soll mit der...', p_c004 => '2015', p_c005 => 'https://apex.oracle.com/pls/apex/f?p=55360:1' ); apex_collection.add_member( p_collection_name => 'DATA_COLLECTION', p_c001 => '2', p_c002 => 'Plug-Ins maßgerecht verwenden', p_c003 => 'Wann macht ein Plugin Sinn...', p_c004 => '2015', p_c005 => 'https://apex.oracle.com/pls/apex/f?p=80307:1' ); end if; end;Next is to select the data from inside an APEX report:
select c001, c002, c003, c004, c005 from apex_collections where collection_name = 'DATA_COLLECTION'And finally I want to check if I get the same results inside my SQL Developer:
-- Set up APEX SESSION declare v_ws_id number; v_app_id number := &app_id; v_session_id number := &session_id; begin select workspace_id into v_ws_id from apex_workspaces; wwv_flow_api.set_security_group_id(v_ws_id); wwv_flow.g_flow_id := v_app_id; wwv_flow.g_instance := v_session_id; end; / -- Execute SQL select * from apex_collections where collection_name = 'DATA_COLLECTION';That is it.