我正在研究Apex 5,希望用顶点运行bi publihser报告。 我在管理实例>报告打印顶点中创建了实例 主机地址:localhost 端口:7001 打印服务器:/ xmlpserver / convert
现在创建报告查询但是当我点击"测试报告查询" 它告诉我错误 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
请帮帮我。
答案 0 :(得分: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
数据库用户的任何主机授予连接权限。
因此,您应该将连接权限授予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;
答案 1 :(得分:0)
另一种解决方法是检查:
manage instance> instance settings> print server host address
也许您只是更改了IP地址。