2016-06-29 4 views
1

Я работаю над Apex 5, хочу запустить отчет bi publihser с вершиной. Я создал экземпляр в Управление Instance> Отчет Печать апекса Адрес хоста: LOCALHOST порт: Сервер 7001 печати:/xmlpserver/конвертироватьORA-20001: Не удалось установить печатный механизм. Oracle Apex 5 с BI Publisher 11.1.1.7

Теперь созданный запрос отчета, но когда я нажимаю "Test Report Query" он показывает мне ошибка ORA-20001: Не удалось установить механизм печати, потому что указанный URL указан неверно или URL-адрес прокси-сервера должен быть указан.

Мои BI компоненты Настроенные Настройка компонентов

Oracle Enterprise Manager 
     http://naeemshahzad-PC:7001/em 
    Business Intelligence Enterprise Edition 
     naeemshahzad-PC:9704/analytics 
    Business Intelligence Publisher 
     naeemshahzad-PC:9704/xmlpserver 

Пожалуйста, помогите мне.

ответ

1

Причина этой ошибки:

ORA-20001: The printing engine could not be reached because either the URL specified is incorrect or a proxy URL needs to be specified. 

потому, что по умолчанию, возможность взаимодействовать с сетевыми службами отключена в Oracle Database 12c. Поэтому, если вы используете Oracle Application Express 5.0 с Oracle Database 12c, вы должны использовать новый пакет DBMS_NETWORK_ACL_ADMIN, чтобы предоставить права доступа на любой хост для пользователя базы данных APEX_050000.

Поэтому вы должны предоставить подключить privilages к APEX_050000

Решение:

Подключение к базе данных, где Oracle Application Express устанавливается как SYS с указанием SYSDBA роль. (Подключается к SQLPLUS по SYS, как пользователь SYSDBA)

Затем выполните следующие PLSQL:

DECLARE 
    ACL_PATH VARCHAR2(4000); 
BEGIN 
    -- Look for the ACL currently assigned to '*' and give APEX_050000 
    -- the "connect" privilege if APEX_050000 does not have the privilege yet. 

    SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS 
    WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; 

    IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_050000', 
    'connect') IS NULL THEN 
     DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 
    'APEX_050000', TRUE, 'connect'); 
    END IF; 

EXCEPTION 
    -- When no ACL has been assigned to '*'. 
    WHEN NO_DATA_FOUND THEN 
    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml', 
    'ACL that lets power users to connect to everywhere', 
    'APEX_050000', TRUE, 'connect'); 
    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); 
END; 
/
COMMIT; 

после этого запуска:

DECLARE 
    ACL_PATH VARCHAR2(4000); 
BEGIN 
    -- Look for the ACL currently assigned to 'localhost' and give APEX_050000 
    -- the "connect" privilege if APEX_040200 does not have the privilege yet. 
    SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS 
    WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; 

    IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_050000', 
    'connect') IS NULL THEN 
     DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 
    'APEX_050000', TRUE, 'connect'); 
    END IF; 

EXCEPTION 
    -- When no ACL has been assigned to 'localhost'. 
    WHEN NO_DATA_FOUND THEN 
    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 
    'ACL that lets users to connect to localhost', 
    'APEX_050000', TRUE, 'connect'); 
    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); 
END; 
/
COMMIT; 
+0

дает мне ошибку в строке 1: ORA-44416: Invalid ACL : Неразрешенный руководитель «APEX_050000» ORA-06512: по адресу «SYS.DBMS_NETWORK_ACL_ADMIN», строка 252 ORA-06512: по строке 19 ORA-01403: данных не найдено – Superdooperhero