ORA-20001:打印引擎无法达成。 甲骨文的Apex 5的BI Publisher 11.1

2019-09-30 10:22发布

我工作的先端5,要运行先端双publihser报告。 我创建的实例在管理实例>顶点主机地址的报表打印:本地主机端口:7001打印服务器:/ xmlpserver /转换

现在创建的报表查询,但是当我点击“测试报告查询”它为我的错误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

请帮我。

Answer 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.0Oracle Database 12c ,你必须使用新的DBMS_NETWORK_ACL_ADMIN包授予连接权限的任何主机的APEX_050000数据库用户。

因此,你应该授予连接的privilages到APEX_050000

解:

其中的Oracle Application Express安装为连接到数据库SYS指定SYSDBA角色。 (由SYS连接到SQLPLUS以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;


文章来源: ORA-20001: The printing engine could not be reached. Oracle Apex 5 with BI Publisher 11.1.1.7