2017-10-29 195 views
0

即时通讯使用bi出版商加载宏在ms字...当我试图在oracle apex 5.1打印报告出现错误 ORA-20001:无法到达打印引擎,因为URL指定不正确或需要指定代理URL。 因为我在这里找到了一些解决方案堆栈溢出,所以我尝试对连接作为SYSDBA双出版商打印错误

DECLARE 
    ACL_PATH VARCHAR2(4000); 
BEGIN 
    -- Look for the ACL currently assigned to '*' and give APEX_050100 
    -- the "connect" privilege if APEX_050100 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_050100', 
    'connect') IS NULL THEN 
     DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 
    'APEX_050100', 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_050100', 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_050100 
    -- 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_050100', 
    'connect') IS NULL THEN 
     DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 
    'APEX_050100', 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_050100', TRUE, 'connect'); 
    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); 
END; 
/
COMMIT; 

后,我执行我再次尝试打印报告,然后出现下列错误sqlplus的命令行运行以下命令:

Error occurred while painting error page: ORA-01403: no data found ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1324 ORA-12570: TNS:packet reader failure 

我该如何解决这个问题?

回答

0

首先,ORA-20001是用户定义的错误。

我只重新订购了第一个区块。更改了报表的顺序。在select声明之后发出异常。因为,当发生异常时,DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE不会在您的情况下运行。

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

    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_050100', TRUE, 'connect'); 
      DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); 
    END; 

    IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_050100', 
    'connect') IS NULL THEN 
     DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 
    'APEX_050100', TRUE, 'connect'); 
    END IF; 
END; 
/
COMMIT; 
+0

i'Il试试吧谢谢先生 – blank

+0

@blank不客气。 –