必须声明 Oracle APEX 5.0 到 5.1 升级 XS$ACE_TYPE

Oracle APEX 5.0 to 5.1 up gradation XS$ACE_TYPE must be declared

我想将 Oracle APEX 5.0 升级到 5.1。访问控制阶段,oracle数据库11gR2报错。

    BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
    HOST => '*',
    ace => xs$ace_type (privilege_list => xs$name_list ('connect'),
                       principal_name => 'APEX_050100',
                       principal_type => xs_acl.ptype_db)
    );
    END;
    /

XS$中出现以下错误ACE_TYPE

    ERROR at line 4:
    ORA-06550: line 4, column 8:
    PLS-00201: identifier 'XS$ACE_TYPE' must be declared
    ORA-06550: line 2, column 1:
    PL/SQL: Statement ignored

试一试 - 对我有用:

第 1 步:

    SQL> grant execute on utl_http to username;

    Grant succeeded.

第 2 步:以 sysdba 身份连接 conn / 作为 sysdba

    BEGIN
            DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
            acl => 'sonudev.xml',
            description => 'Permissions to access  mail',
            principal => 'USERNAME',
            is_grant => TRUE,
            privilege => 'connect',
            start_date => SYSTIMESTAMP,
            end_date => NULL);
            COMMIT;
    END;
    /
    PL/SQL procedure successfully completed.

第 3 步:

    BEGIN
            DBMS_NETWORK_acl_ADMIN.ADD_PRIVILEGE(
            acl => 'sonudev.xml',
            principal => 'USERNAME',
            is_grant => true,
            privilege => 'resolve'
            );
            COMMIT;
    END;
    /
    PL/SQL procedure successfully completed.

第 4 步:

    BEGIN
            DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
            acl => 'sonudev.xml',
            host => '*');
            COMMIT;
    END;
    /

第 5 步:

    select acl , host , lower_port , upper_port from DBA_NETWORK_ACLS;

    select acl , principal , privilege , is_grant from DBA_NETWORK_ACL_PRIVILEGES

参考:https://mohamedazar.com/2015/11/26/ora-24247-network-access-denied-by-access-control-list-acl/