APEX DB schemas

Request Express 4.2.2.00.11

I have a custom schema "XX1" that contains all of my tables.

I have a custom scheme "condition2". My workspace is reference "condition2".

For various reasons, I can't put my workspace to XX1 (standards, security etc.). I grant select, insert on XX1.table1 to condition2 and created a synonym for XX1.table in the scheme of condition2, but I can't do refer to this table in one the Assistant drop downs.

What is the recommended method, giving access to the scheme of XX1 without actually putting the top workspace?

The wizard will pick up not synonymous (at least that is what I also noticed). The usual way around this is to create a view in condition2:

create view my_table

in select * from XX1.my_table

There was a good blog of Scott Spendolini on this approach (Secure Apex Development), but a link I had to it is now invalid.

Oh, here's a copy:

http://eastcoastoracle.org/PDF_files/presentations/SpendoliniSecure%20APEX%20Development.PDF

Tags: Database

Similar Questions

  • Apex authentication scheme 4.02 Apex Bug

    Hello

    I have recently install 4.0.2 oracle apex in Oracle database XE, I created an application with the Apex authentication scheme. The problem I encountered is that Apex is always show the logout button, if I close the browser and open it again and enter my public page of application for the first time that the apex is showing the logout button. When I click on the logout button, the session id changes but Apex continues to show the logout button.

    Is there a solution for this situation?

    Hello

    Go to edit this entry of logout navigation bar.
    The value entered conditionally "user is Authenticated (not public)"

    Kind regards
    Jari

  • APEX Application schema vs schema

    What is practical common Production of creating schema?

    Do I need to have separate the schema for the objects in the APEX and workspace AND have connected it to my production application diagram where all applications related tables?

    Please advice.

    Thank you

    Hello

    I'm not sure you understand the architecture of the Apex, and maybe a brief explanation will answer your question.

    When you create a workspace Apex, you associate this workspace with an Oracle schema that is the scheme of analysis, which means that all the code you produce as part of your application is running as this drawing. This scheme would then usually become the owner of all your objects in Oracle database such as tables, views, indexes, packages, etc. (it may be more complicated with multiple schemas, but lets keep things simple for now)

    Then, you just create an Apex application against this schema. Objects Apex you create, applications, pages, regions, sections, etc., are not actually stored in this scheme. They are associated with this scheme of working space and are actually stored in a metadata structure of the schema of the Apex, which you never touch directly, but interact with through the actual application of the Apex. If you logged on to your schema analysis through SQLPlus and tried to find objects of the Apex by querying the metadata of normal database views that you won't find anything.

    Back to the thing of multiple schemas, for small and medium-sized applications that are purely for Apex, I would recommend that you keep everything in a single schema and use this schema in the schema of your analysis. For applications more complex, a purely database design point of view, it may be better to split your application into several scheme in multiple schemas. In this case, you will need create a scheme of analysis or use one of the existing schemas as a scheme of analysis and then to maintain a system of grants and synonyms between patterns to identify all patterns of Apex, although only can be the analysis schema.

    There is a theory going around that promotes separation between schemas that have database objects and schema that connects an application like. This is mainly for security and safety so that developers do not damage the application of database and end users access without authorization through techniques such as SQL injection. This can be a concern with the very big development projects with large and/or public user databases. I tend to think, however, that this is not the typical target for applications of Apex (Apex is appropriate in this case API is another debate) and using this architecture of sorting is excessive in most cases.

    I hope I understood your query and that helps.

    Concerning
    André

  • APEX permission scheme does not not after importation

    Hi all

    I work with APEX 4.2. I created a simple application APEX with a diagram of permission on a development server. After export and import on the production server authorization system does not work. However, it is displayed as expected in the IDE. Someone at - it this experience?

    I figured this out. After import, I needed run the access control administration page and set the mode of application of restricted access, and add users to the list of access control.

  • Apex authentication scheme

    Hi all

    -First of all, I created two individual applications with the shceme of authentication
    -then I want to create the account authentication shceme database in the first request, which must take place at the second asking too much (I mean a single sign on for both applications).

    Please someone help me

    Hello
    Create an authentication scheme in your 2nd application, modify the plan that you create and use "Reference Master Authentication Scheme From" the authentication scheme developed 2nd application you plan 'Master' in the application 1.

    HTH,

    Mike

  • Error of the ACLs in Oracle Apex 5 after schema change

    Hi all

    I'm creating an application using Oracle Apex 5.

    I have a button call Send Mail and mail is worked.

    Now, I imported my request in a different schema and configured acl as below.

    I use apex_mail.send to send mail and created the acl as

    BEGIN

    () DBMS_NETWORK_ACL_ADMIN.drop_acl

    ACL = > 'open_apex.xml');

    (DBMS_NETWORK_ACL_ADMIN). CREATE_ACL

    ACL = > "open_apex.xml"

    Description = > "a test of the ACL feature."

    main = > 'RMSR. "

    IS_GRANT = > TRUE,

    privilege = > 'connection ',.

    start_date = > SYSTIMESTAMP,

    End_date = > NULL);

    (DBMS_NETWORK_ACL_ADMIN). ASSIGN_ACL

    ACL = > "open_apex.xml"

    Home = > ' *',

    lower_port = > 20,

    upper_port = > 9999);

    COMMIT;

    end;

    BEGIN

    (DBMS_NETWORK_ACL_ADMIN). ADD_PRIVILEGE

    ACL = > "open_apex.xml"

    main = > 'RMSR. "

    IS_GRANT = > TRUE,

    privilege = > 'connection ',.

    position = > NULL,

    start_date = > NULL,

    End_date = > NULL);

    COMMIT;

    END;

    It throws error as

    ORA-24247: network access denied by access control list (ACL)

    Is there a problem in my setup?

    Thanks in advance,

    Su.GI

    Hi Su.gi,

    Su.GI wrote:

    I'm creating an application using Oracle Apex 5.

    I have a button call Send Mail and mail is worked.

    Now, I imported my request in a different schema and configured acl as below.

    It throws error as

    ORA-24247: network access denied by access control list (ACL)

    Is there a problem in my setup?

    You have granted the ACL to the RMSR of your database schema, so it is necessary for the APEX_050000 scheme when you use the APEX_MAIL package.

    This is why the ACL must be granted at the APEX 5 Schema: https://docs.oracle.com/cd/E59726_01/install.50/e39144/listener.htm#HTMIG29161

    Here's how the ACL must be granted for APEX 5 Schema: https://docs.oracle.com/cd/E59726_01/install.50/e39144/listener.htm#HTMIG29162

    NOTE:

    • Create the ACL by logging into the user with SYSDBA SYS privileges.
    • Don't forget to validate after execution of the anonymous block for the creation of ACL.

    Kind regards

    Kiran

  • Integration of apex EBS with the APPS schema

    Hello

    I'm a developer APEX with no experience of BSE, but I took on a project to review the current context where the APEX and EBS are integrated. The first thing that I found is that 40 + Apex Applications all use the EBS 'APPS' schema as the schema work space of analysis, I read in the document Oracle 'white paper of March 2015 release on Extending Oracle E-business 12.1 and above using APEX', is a large, no!. Below are the details of the environment. In addition, they use a PLSQL Embedded walkway that once, it looks like the less favored approach and a listener of the Apex on (Glassfish?) must be used.

    So my question is... what would be the best approach, should I change all the existing application to use a newly created Apex analysis schema for example APEX_EBS_EXTENSION and then create views and grants him so it can access the data of the applications. I do this manually through all the applications by looking at each piece of code? This seems a very unpleasant approach. Should we deviate from the integrated bridge, any guidance would be appreciated?

    The task that made me initially was to manage the upgrade of the schema in the database to 5 APEX Apex, regression test all existing applications and create new applications using the universal theme, but I want to get the House in order before the upgrade.

    Environment

    E-Business Suite Release 12.1.3

    Apex 4.1.0.00.32

    Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production

    IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production

    Hi AndyLou,

    AndyLou wrote:

    I'm a developer APEX with no experience of BSE, but I took on a project to review the current context where the APEX and EBS are integrated. The first thing that I found is that 40 + Apex Applications all use the EBS 'APPS' schema as the schema work space of analysis, I read in the document Oracle 'white paper of March 2015 release on Extending Oracle E-business 12.1 and above using APEX', is a large, no!. Below are the details of the environment. In addition, they use a PLSQL Embedded walkway that once, it looks like the less favored approach and a listener of the Apex on (Glassfish?) must be used.

    Yes. Oracle REST Data Services (ADR) (formerly known as the APEX listener) deployed to the support for Java EE application servers is a best/best option as for Oracle APEX instead of the EPG Web listener option.

    Reference: https://docs.oracle.com/cd/E59726_01/install.50/e39144/overview.htm#HTMIG29325

    Learn about considerations when using of EPG (Embedded PL/SQL Gateway) as the web listener with Oracle APEX.

    Reference: https://docs.oracle.com/cd/E59726_01/install.50/e39144/overview.htm#HTMIG29140

    So my question is... what would be the best approach, should I change all the existing application to use a newly created Apex analysis schema for example APEX_EBS_EXTENSION and then create views and grants him so it can access the data of the applications. I do this manually through all the applications by looking at each piece of code? This seems a very unpleasant approach. Should we deviate from the integrated bridge, any guidance would be appreciated?

    Yes. You must move far EPG to a better option.

    The task that made me initially was to manage the upgrade of the schema in the database to 5 APEX Apex, regression test all existing applications and create new applications using the universal theme, but I want to get the House in order before the upgrade.

    Environment

    You should go for upgrade of the Oracle APEX of 4.1 to 5.x with existing architecture first. Regression test your applications to remove if any errors introduced by upgrade. The kickoff of a new project to migrate your applications to universal theme.

    Reference:

    After the upgrade, when all the dust about the upgrade issued sets in, then you can consider changing your architecture, analysis scheme for your APEX applications according to white papers issued by Oracle:

    Kind regards

    Kiran

  • Which schema/user is a connected person slot within the Apex?

    Greetings,

    I have an application with built in authentication of the function table. When a person logs in their username and password is simply compared to the values of a user table to determine if they can use the application. The authentication table is in the same schema as the application.

    The Apex application is in a schema called DLR_INV. All the tables used by the application, but one is in that same pattern. The table in another schema is used to retrieve the status codes for a LOV.

    The user receives an error when the page opens, the error is on the State LOV. My DBA and another Oracle developer to determine what the problem is. Is there a synonym above the state table which should provide access. The DBA can connect through SQL Developer as DLR_INV and access the status table.

    What could be the problem?

    One question - given the way the authentication of the application is set up - when a person signs this schema/user are they connected as?

    Thank you, Tony

    Published by: hidden on January 25, 2010 12:14

    Tony

    I don't see the privilege to 'select' on XX_BMC_DLRINV.MS_US_STATES? Your APEX application schema needs grants 'live' on the objects he needs to access. Privileges gained through roles will not be recognized.

    GRANT SELECT ON XX_BMC_DLRINV.MS_US_STATES TO DLR_INV;

    CITY

  • Apex_application.g_print_success_message do not work

    Hi all

    I try to use my PL/SQL package (on Apex Pasing schema) this command:

    apex_application.g_print_success_message: = "error";

    But no message appears on my Apex page, when the code is executed.

    Any help?

    I use Apex 4.2

    As FAR AS I KNOW apex_application.g_print_success_message CACCNOT BEING CALLED inside the package


    You can do like this


    CREATE a function inside the package that will return a flag


    FUNCTION FNC_name (P_ID IN table.ID%TYPE)

    RETURN NUMBER

    IS

    -- --------------------------------------------------------------------------------

    L_FLAG NUMBER: = 0;

    NUMBER OF L_EXISTS;

    -- --------------------------------------------------------------------------------

    BEGIN

      FOR REC IN (SELECT columns
                    TABLE
                    WHERE condition)
      LOOP
      IF (condition) THEN
           L_FLAG: = 1;
      ON THE OTHER
              L_FLAG: = 0;
      END IF;
      END LOOP;
    RETURN L_FLAG;
     

    END FNC_name;

    You can create a process plsql as this call that work inside the package

    CREATE A PLSQL PROCESS: -.

    declare

    L_RETURN VARCHAR2 (500);

    Start

    IF

    PACKAGENAME. FNC_NAME(:P42_ID) > 0 THEN

    () apex_error.add_Error

    p_message-online "already exists."

    p_display_location-online apex_error.c_inline_with_field_and_notif,

    p_page_item_name => 'P42_DISPLAY_ERROR');

    ON THE OTHER

    -ANY OTHER ACTION

    apex_application.g_print_success_message: = 'created successfully.';

    END IF;

    end;

  • What are the possible values for APP_COMPONENT_TYPE?

    The possible values of APP_COMPONENT_TYPE documented anywhere?

    Also, I want to ask all the components in my APEX application. My current query of multiple views unions APEX (apex_application_page_items, apex_application_page_buttons, apex_application_page_regions,...)-a point of view by each component type. Is there a better way to list components?

    Thank you

    -Kris

    Select * from APEX_APPLICATION_ALL_AUTH

    View: APEX_APPLICATION_ALL_AUTH
    Description: All the authorisation schemes for all components of the Application
    Column Name Comments
    WORKSPACE Model authorization workspace
    WORKSPACE_DISPLAY_NAME Full name of the workspace
    APPLICATION_ID Number of request of authorization Scheme
    APPLICATION_NAME Name of the schema to request authorization
    PAGE_ID ID of Page authorization regime
    COMPONENT_TYPE APEX authorization schema component type
    NAME OF THE COMPONENT Name of the component system APEX authorization
    AUTHORIZATION_SCHEME Name of schema authorization
    STATUS Situation of authorisation system

    See http://eberapp.com/pls/apex/f?p=447:1301:35096966318357:CLEAR_SORT:RP, 1301:P1301_VIEW:APEX_APPLICATION_ALL_AUTH

  • How to restrict access to certain pages of a user group

    I want to restrict access to certain pages in my application to a set of users only. How can I achieve this.

    use the authorization scheme for permission to the users group"

    See also follows her

    Schema authorization using the APEX authentication scheme

    security - authorization roles and user in Oracle Apex? -Stack overflow

    How to create the schema for permission for the users group.

    Leave.

  • Find comments of request for a report

    Hello

    Can someone tell me which table or view can I access «Application comments» I did a search on that one found anything in this forum.
    I'm creating an application where other applications can be launched from all maintaining authentication (all in the same workspace).
    I have the list of the apex_applications.application_name as links in the report, but I would like to add a description of the application in an adjacent column to the link. I thought that the comments of the application would be a good field to use if I can find it and join at the sight of apex_applications.
    I use APEX 4.1.0.00.32

    Thank you
    Wayne

    Apex WWV_FLOW_BANNER schema table

    Shared components - comments - who discovers?

  • Error installing support OLL packaged Application objects

    Hello

    I am installing OLL packaged Application | http://www.Oracle.com/WebFolder/technetwork/tutorials/OBE/DB/Apex/R41/inst_pkgapp/inst_pkgapp.htm#top

    but during the installation of supported objects, I got error when executing code in 'create_package_body '.
    Error on line 274: PLS-00201: identifier 'UTL_TCP' must be declared
    create or replace package body eba_oll_log
    as
    
    g_start_time    number;
    
    
    procedure log_init
    is
    begin
        g_start_time := dbms_utility.get_time;
    end log_init;
    
    
    
    procedure log_page_view
    is
    begin
    
       insert into eba_oll_page_views
          ( APEX_USER,
            PAGE_ID,
            PAGE_NAME,
            VIEW_DATE,
            TS, 
            ELAPSED_TIME,
            IP_ADDRESS,
            AGENT,
            APEX_SESSION_ID,
            CONTENT_ID,
            CONTENT_TITLE )
       values
          ( v('APP_USER'),
            v('APP_PAGE_ID'),
            wwv_flow.g_step_title,
            trunc(sysdate,'DD'),
            systimestamp, 
            (dbms_utility.get_time-g_start_time)*(.01), 
            owa_util.get_cgi_env('REMOTE_ADDR'), 
            owa_util.get_cgi_env('HTTP_USER_AGENT'), 
            v('APP_SESSION'),
            case when v('APP_PAGE_ID') = 24
                 then v('P24_CONTENT_ID')
                 else null
                 end,
            case when v('APP_PAGE_ID') = 24
                 then v('P24_CONTENT_TITLE')
                 else null
                 end );
    
       if v('APP_PAGE_ID') = 24 then
    
          insert into eba_oll_content_views
             ( APEX_USER,
               VIEW_DATE,
               TS, 
               IP_ADDRESS,
               AGENT,
               APEX_SESSION_ID,
               CONTENT_ID,
               CONTENT_TITLE,
               NOTE )
          values
             ( v('APP_USER'),
               trunc(sysdate,'DD'),
               systimestamp, 
               owa_util.get_cgi_env('REMOTE_ADDR'), 
               owa_util.get_cgi_env('HTTP_USER_AGENT'), 
               v('APP_SESSION'),
               v('P24_CONTENT_ID'),
               v('P24_CONTENT_TITLE'),
               'Viewed' );
    
       end if;
    
       commit;
    
    end log_page_view;
    
    
    
    procedure log_content_click
    is
    begin
    
       insert into eba_oll_content_views
          ( APEX_USER,
            VIEW_DATE,
            TS, 
            IP_ADDRESS,
            AGENT,
            APEX_SESSION_ID,
            CONTENT_ID,
            CONTENT_TITLE,
            NOTE )
       values
          ( v('APP_USER'),
            trunc(sysdate,'DD'),
            systimestamp, 
            owa_util.get_cgi_env('REMOTE_ADDR'), 
            owa_util.get_cgi_env('HTTP_USER_AGENT'), 
            v('APP_SESSION'),
            v('P24_CONTENT_ID'),
            v('P24_CONTENT_TITLE'),
            'Launched' );
    
       commit;
    
    end log_content_click;
    
    
    end eba_oll_log;
    /
    
    
    create or replace package body eba_oll_api
    as
    
    
    function gen_id 
       return number
    is
       l_id  number;
    begin
       select to_number(sys_guid(), 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
         into l_id
         from dual;
    
       return l_id;
    end gen_id;
    
    
    function eba_oll_tags_cleaner (
        p_tags  in varchar2,
        p_case  in varchar2 default 'U' ) return varchar2
    is
        type tags is table of varchar2(255) index by varchar2(255);
        l_tags_a        tags;
        l_tag           varchar2(255);
        l_tags          apex_application_global.vc_arr2;
        l_tags_string   varchar2(32767);
        i               integer;
    begin
    
        l_tags := apex_util.string_to_table(p_tags,',');
    
        for i in 1..l_tags.count loop
            --remove all whitespace, including tabs, spaces, line feeds and carraige returns with a single space
            l_tag := substr(trim(regexp_replace(l_tags(i),'[[:space:]]{1,}',' ')),1,255);
    
            if l_tag is not null and l_tag != ' ' then
                if p_case = 'U' then
                    l_tag := upper(l_tag);
                elsif p_case = 'L' then
                    l_tag := lower(l_tag);
                end if;
                --add it to the associative array, if it is a duplicate, it will just be replaced
                l_tags_a(l_tag) := l_tag;
            end if;
        end loop;
    
        l_tag := null;
    
        l_tag := l_tags_a.first;
    
        while l_tag is not null loop
            l_tags_string := l_tags_string||l_tag;
            if l_tag != l_tags_a.last then
                l_tags_string := l_tags_string||', ';
            end if;
            l_tag := l_tags_a.next(l_tag);
        end loop;
    
        return substr(l_tags_string,1,4000);
    
    end eba_oll_tags_cleaner;
    
    
    procedure eba_oll_tag_sync (
        p_new_tags          in varchar2,
        p_old_tags          in varchar2,
        p_content_type      in varchar2,
        p_content_id        in number )
    as
        type tags is table of varchar2(255) index by varchar2(255);
        l_new_tags_a    tags;
        l_old_tags_a    tags;
        l_new_tags      apex_application_global.vc_arr2;
        l_old_tags      apex_application_global.vc_arr2;
        l_merge_tags    apex_application_global.vc_arr2;
        l_dummy_tag     varchar2(255);
        i               integer;
    begin
    
        l_old_tags := apex_util.string_to_table(p_old_tags,', ');
        l_new_tags := apex_util.string_to_table(p_new_tags,', ');
    
        if l_old_tags.count > 0 then --do inserts and deletes
    
            --build the associative arrays
            for i in 1..l_old_tags.count loop
                l_old_tags_a(l_old_tags(i)) := l_old_tags(i);
            end loop;
    
            for i in 1..l_new_tags.count loop
                l_new_tags_a(l_new_tags(i)) := l_new_tags(i);
            end loop;
    
            --do the inserts
            for i in 1..l_new_tags.count loop
                begin
                    l_dummy_tag := l_old_tags_a(l_new_tags(i));
                exception when no_data_found then
                    insert into eba_oll_tags (tag, content_id, content_type )
                        values (l_new_tags(i), p_content_id, p_content_type );
                    l_merge_tags(l_merge_tags.count + 1) := l_new_tags(i);
                end;
            end loop;
    
            --do the deletes
            for i in 1..l_old_tags.count loop
                begin
                    l_dummy_tag := l_new_tags_a(l_old_tags(i));
                exception when no_data_found then
                    delete from eba_oll_tags where content_id = p_content_id and tag = l_old_tags(i);
                    l_merge_tags(l_merge_tags.count + 1) := l_old_tags(i);
                end;
            end loop;
        else --just do inserts
            for i in 1..l_new_tags.count loop
                insert into eba_oll_tags (tag, content_id, content_type )
                    values (l_new_tags(i), p_content_id, p_content_type );
                l_merge_tags(l_merge_tags.count + 1) := l_new_tags(i);
            end loop;
        end if;
    
        for i in 1..l_merge_tags.count loop
            merge into eba_oll_tags_type_sum s
            using (select count(*) tag_count
                     from eba_oll_tags
                    where tag = l_merge_tags(i) and content_type = p_content_type ) t
               on (s.tag = l_merge_tags(i) and s.content_type = p_content_type )
             when not matched then insert (tag, content_type, tag_count)
                                   values (l_merge_tags(i), p_content_type, t.tag_count)
             when matched then update set s.tag_count = t.tag_count;
    
            merge into eba_oll_tags_sum s
            using (select sum(tag_count) tag_count
                     from eba_oll_tags_type_sum
                    where tag = l_merge_tags(i) ) t
               on (s.tag = l_merge_tags(i) )
             when not matched then insert (tag, tag_count)
                                   values (l_merge_tags(i), t.tag_count)
             when matched then update set s.tag_count = t.tag_count;
        end loop;
    
    end eba_oll_tag_sync;
    
    procedure render_tag_cloud (
       p_selection          in varchar2 default null,
       p_app_id             in number,
       p_session_id         in number,
       p_min_nbr_tags       in number default 1,
       p_max                in number default 100,
       p_limit              in number default 10000,
       p_link_to_page       in varchar2 default '2',
       p_tag_item_filter    in varchar2 default 'P2_TAGS',
       p_clear_cache        in varchar2 default '2,CIR,RIR',
       p_more_page          in varchar2 default '62' )
    as
       l_printed_records    number := 0;
       l_available_records  number := 20;
       l_max                number;
       l_min                number;
    
       l_class_size         number;
       l_class              varchar2(30);
    
       type l_tagtype is table of varchar2(2000);
       l_tags l_tagtype;
    
       type l_numtype is table of number;
       l_cnts l_numtype;
    
       l_size number;
       l_total number :=0;
    
       l_buffer varchar2(32676);   
    
       CURSOR c_all_tags
       IS
           select tag, c from (
           select t.tag, count(*) c
             from eba_oll_content c,
                  eba_oll_tags t
            where c.content_id = t.content_id
              and c.display_yn = 'Y'
              and (p_selection is null or
                   (p_selection is not null and
                   (   (substr(p_selection,1,1) = 'R' and
                        substr(p_selection,2) in (select release_id
                                                    from eba_oll_content_products cp
                                                   where cp.content_id = c.content_id))
                    or (substr(p_selection,1,1) = 'C' and
                        substr(p_selection,2) in (select product_id
                                                    from eba_oll_content_products cp
                                                   where cp.content_id = c.content_id))
                    or (substr(p_selection,1,1) = 'P' and
                        (substr(p_selection,2) in (select product_id
                                                     from eba_oll_content_products cp
                                                    where cp.content_id = c.content_id) or
                         substr(p_selection,2) in (select p.parent_product_id
                                                     from eba_oll_content_products cp,
                                                          eba_oll_products p
                                                    where cp.content_id = c.content_id
                                                      and cp.product_id = p.product_id)))
                    or (substr(p_selection,1,1) = 'G' and
                        (substr(p_selection,2) in (select pg.group_id
                                                     from eba_oll_product_groupings pg,
                                                          eba_oll_content_products cp
                                                    where pg.product_id = cp.product_id
                                                      and cp.content_id = c.content_id) or
                         substr(p_selection,2) in (select pg.group_id
                                                     from eba_oll_product_groupings pg,
                                                          eba_oll_products p,
                                                          eba_oll_content_products cp
                                                    where pg.product_id = p.parent_product_id
                                                      and p.product_id = cp.product_id
                                                      and cp.content_id = c.content_id)))
                   )))
            group by tag
           ) x where rownum < p_limit
                 and c >= p_min_nbr_tags
            order by upper(tag) ;
    
    begin
    
       -------------------------
       -- Fetch tags into arrays
       --
       open c_all_tags;
          loop
              fetch c_all_tags bulk collect into l_tags,l_cnts limit p_limit;
              exit;
          end loop;
       close c_all_tags;
    
       l_available_records := l_tags.count;
    
    
       -----------------------------------------------
       -- Determine total count and maximum tag counts
       --
       l_max := 0;
       l_min := 1000;
       FOR i in l_cnts.first..l_cnts.last loop
          l_total := l_total + l_cnts(i);
          if l_cnts(i) > l_max then
             l_max := l_cnts(i);
          end if;
          if l_cnts(i) < l_min then
             l_min := l_cnts(i);
          end if;
       end loop;
       if l_max = 0 then l_max := 1; end if;
    
    
       l_class_size := round((l_max-l_min)/6);
    
       ------------------------
       -- Generate tag cloud --
       --
       
       sys.htp.prn('<div class="tagCloud"><ul>');
    
       for i in l_tags.first..l_tags.last loop
           l_printed_records := l_printed_records + 1;
    
           if l_cnts(i) < l_min + l_class_size then
              l_class := 'size1';
           elsif l_cnts(i) < l_min + (l_class_size*2) then
              l_class := 'size2';
           elsif l_cnts(i) < l_min + (l_class_size*3) then
              l_class := 'size3';
           elsif l_cnts(i) < l_min + (l_class_size*4) then
              l_class := 'size4';
           elsif l_cnts(i) < l_min + (l_class_size*5) then
              l_class := 'size5';
           else l_class := 'size6';
           end if;      
           
           l_buffer := '<li><a class="'||l_class||'" href="'||
                  'f?p='||p_app_id||':'||p_link_to_page||':'||p_session_id||':::'||p_clear_cache||':'||
                  p_tag_item_filter||':'||htf.escape_sc(l_tags(i))||'">'||
                  htf.escape_sc(l_tags(i)) || '<span>' || l_cnts(i) || '</span></a></li>';
    
           sys.htp.prn(l_buffer);
    
           l_buffer := '';
    
           if  l_printed_records > p_max then
               exit;
           end if;
       end loop;
    
       sys.htp.prn('</ul></div>');
    
    
       -- print if there's more
       if l_tags.count - l_printed_records != 0 then
               htp.prn('<p><a href="f?p='||p_app_id||':'||htf.escape_sc(p_more_page)||
                     ':'||p_session_id||':::'||htf.escape_sc(p_more_page)||'">View all tags</a></p>');
       end if;
    
    
       exception when others then
          sys.htp.prn('<p>No tags found.</p>');
    end render_tag_cloud; 
    
    
    procedure email_when_feedback (
       p_feedback_id  in  number,
       p_host_url     in  varchar2,
       p_app_id       in  number )
    is
       l_body       clob;
       l_body_html  clob;
    begin
    
    for c1 in (
       select f.feedback_comment, f.feedback_by,
              c.title, nvl(ct.feedback_contacts,'[email protected]') email
         from eba_oll_content_feedback f,
              eba_oll_content c,
              eba_oll_team ct
        where f.id = p_feedback_id
          and f.content_id = c.content_id
          and c.team_id = ct.team_id (+) )
    loop
    
       l_body := 'You have received feedback for a piece of content you own in the Oracle Learning Library (OLL) Application.
    
    Content: '|| c1.title || utl_tcp.crlf || '
    Feedback: '|| c1.feedback_comment || utl_tcp.crlf || '
    Left by: '|| lower(c1.feedback_by) ||'
    
    You can respond via the OLL Application, '||p_host_url||'f?p='||p_app_id||':47:::NO::P47_ID:' || p_feedback_id || '.';
    
    
       l_body_html := '<div style="border: 1px solid #DDD; background-color: #F8F8F8; width: 460px; margin: 0 auto; -moz-border-radius: 10px; -webkit-border-radius: 10px; padding: 20px;">
    <p style="font: bold 12px/16px Arial, sans-serif; margin: 0 0 10px 0; padding: 0;">
    You have received feedback for a piece of content you own in the Oracle Learning Library (OLL) Application.
    </p>
    <table style="width: 100%;" cellspacing="0" cellpadding="0" border="0">
    <tr>' || utl_tcp.crlf || '
    <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Content</td>
    <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;"><a href="#" style="color: #000">'||c1.title||'</a></td>
    </tr>
    <tr>' || utl_tcp.crlf || '
    <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Feedback</td>
    <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||replace(c1.feedback_comment,CHR(10),'<br/>')||'</td>
    </tr>
    <tr>' || utl_tcp.crlf || '
    <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Left by</td>
    <td style="font: bold 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||lower(c1.feedback_by)||'</td>
    </tr>
    <tr>' || utl_tcp.crlf || '
    <td colspan="2" style="text-align: center; font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">
    <a href="'||p_host_url||'f?p='||p_app_id||':47:::NO::P47_ID:' || p_feedback_id ||'" style="display: block; padding: 10px; background-color: #EEE; font: bold 16px/16px Arial, sans-serif; color: #444">Respond to this Feedback</a>
    </td>
    </tr>
    </table>
    </div>';
    
       apex_mail.send (
          p_to        => c1.email,
          p_from      => '[email protected]',
          p_subj      => 'OLL - New Feedback for your team',
          p_body      => l_body,
          p_body_html => l_body_html );
    
    end loop;
    
    end email_when_feedback;
    
    
    
    procedure email_when_response (
       p_feedback_id  in  number,
       p_host_url     in  varchar2,
       p_app_id       in  number )
    is
       l_body       clob;
       l_body_html  clob;
    begin
    
    for c1 in (
       select f.feedback_comment, f.feedback_by, f.response, c.title
         from eba_oll_content_feedback f,
              eba_oll_content c
        where f.id = p_feedback_id
          and f.content_id = c.content_id )
    loop
    
       l_body := 'You have received a response to your feedback left in the Oracle Learning Library (OLL) Application.
    
    Content: '|| c1.title || '
    Feedback: '|| c1.feedback_comment || '
    Response: '|| c1.response || '
    
    You can also view this response via the OLL Application, '||p_host_url||'f?p='||p_app_id||':60:::NO::IR_ID:' || p_feedback_id || '.';
    
    
          l_body_html := '<div style="border: 1px solid #DDD; background-color: #F8F8F8; width: 460px; margin: 0 auto; -moz-border-radius: 10px; -webkit-border-radius: 10px; padding: 20px;">
    <p style="font: bold 12px/16px Arial, sans-serif; margin: 0 0 10px 0; padding: 0;">
    You have received a response to your feedback left in the Oracle Learning Library (OLL) Application.
    </p>
    <table style="width: 100%;" cellspacing="0" cellpadding="0" border="0">
    <tr>' || utl_tcp.crlf || '
    <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Content</td>
    <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;"><a href="#" style="color: #000">'||c1.title||'</a></td>
    </tr>
    <tr>' || utl_tcp.crlf || '
    <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Feedback</td>
    <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||replace(c1.feedback_comment,CHR(10),'<br/>')||'</td>
    </tr>
    <tr>' || utl_tcp.crlf || '
    <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Response</td>
    <td style="font: bold 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||replace(c1.response,CHR(10),'<br/>')||'</td>
    </tr>
    <tr>' || utl_tcp.crlf || '
    <td colspan="2" style="text-align: center; font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">
    <a href="'||p_host_url||'f?p='||p_app_id||':60:::NO::IR_ID:' || p_feedback_id ||'" style="display: block; padding: 10px; background-color: #EEE; font: bold 16px/16px Arial, sans-serif; color: #444">View Response in OLL Application</a>
    </td>
    </tr>
    </table>
    </div>';
    
       apex_mail.send (
          p_to        => c1.feedback_by,
          p_from      => '[email protected]',
          p_subj      => 'Oracle Learning Library - Response to your Feedback',
          p_body      => l_body,
          p_body_html => l_body_html ); 
    
    end loop;
    
    end email_when_response;
    
    
    
    end eba_oll_api;
    /
    Error on line 274: PLS-00201: identifier 'UTL_TCP' must be declared

    Published by: Fateh January 13, 2012 07:32

    Fateh,

    It would seem that your schema of Apex/user doesn't have access to, or otherwise know the utl_tcp Oracle package. Try running it in your workshop of Apex SQL > SQL commands.

    desc utl_tcp
    

    If you do not get a description of the utl_tcp package then you will know that your Apex selected scheme lacks the permissions to run this package. Assuming that this is the case, then you will need someone with the correct privileges to run:

    grant execute on utl_tcp to [your_schema_name]
    

    Hope that helps.

    Earl

  • Personalized with the trusted source authentication

    Hello

    There is a following requirement: since a user application (non-apex) klicks on a link to a page of the apex and must be authenticated without having to type his username and password (without page 101) because it is already identified in this application non-apex.

    My approach: create a procedure that checks if the user is authenticated in a non-apex application. Then create a custom authentication scheme where authentication is my procedure. Then of course change current authentication scheme to my authentication scheme. BUUUT what happens if the user is not properly authenticated in a non-apex application? So I think that the user should see page 101 and type the name of user and password.

    Is it possible to do something like this: If the procedure returns true, then use Custom authentication scheme, if set to false use Apex authentication schema (standard schema)? Or is it not the right approach?

    Thank you very much for your answers.

    Kind regards

    Anton

    PS: I know that some of the discussions in the forum about this, but I don't understand how they can help in my case.

    Hi Anton,.

    Instead of calling APEX_CUSTOM_AUTH. CONNECTION, you can call APEX_CUSTOM_AUTH. SET_SESSION_ID and APEX_CUSTOM_AUTH. SET_USER and use a sentinel of page function. You will have to search this forum for cover page features more information.

    In your authentication custom parameters are user name and password, but you can check what you want and return true or false. If you do not check the password at all you could just always return true and let all users. If you need to decide what information you will use to authenticate users. There are many ways to do what you want. The password technique to generate just allows you to do a little sign outside the authentication function that allows you to have the 2 way authentication. Some users have a password generated for them and others must provide their password. The function of authentication it don't worry about the right controls for two passwords.

    Rod West

  • Locked user account and connect on demand

    Hi, any omniscient! :) I'm sorry for my bad English, but I have a question.

    Why is able to connect to an Application user using Builtin ApEx Authentication Scheme, when this user's account is locked? We see that in the ApEx 3.1, 3.2 (and I think, ApEx 3.2.1 has builtin regime too).

    As a workspace admin Home > Administration > manage Services > Set Workspace Preferences and ensure that the account Expiration and locking is set to enable.

    Scott

Maybe you are looking for

  • Microsoft documents

    I sent my resume to my works computer that uses Microsoft, but Microsoft and Apple donot marry upward. When I tried to attach my cv on a document it wil not let me do some stuff there. I have iPad 1air

  • Import of Skype comes in contact with the server error

    Trying to import facebook friends in Skype, I get this error "the service you requested is temporarily unavailable. Please try again in a few moments. Any solution?

  • Old Dv1024 does not start

    An old machine, but quite capable of simple things like a web machine.  Was up and running, suddenly closed.  When I press the power button that keyboard will Flash at the top of the page, I hear a slight click, but that's all. These things are worth

  • where is my icon "Favorites"?

    I used to click on the butterfly on the desktop and be connected to msn.com with Microsoft money msn window and various icons above as "Favorites", "email", etc.  Now, nothing happens when I click on the butterfly.  But I can click on the 'e' and get

  • All the lights on the control panel lights

    I have a HP psc 1315v all-in-one. All of a sudden, all the lights (on / RESUME, check paper, check print cartridge;) Size - 100%, fit to Page; Plain - paper type, Photo; Start copy - black, color) flashes at the same time. I can push the On / button