Hola amig@s,
Si al intentar depurar con el SQLPLUS os devuelve el error
ORA-27247 se debe a que el SQL developer trabaja con una especie de servidor de
depuración, es decir abre un puerto TCP donde almacena toda la salida de la
depuración.
El problema es que Oracle por defecto, bloquea todas las
peticiones TCP a menos que se cree una ACL (Access control list) que permita
dicho acceso.
Para crear la ACL tenemos que hacerlo como SYS. Donde host,
ponemos la IP que nos devuelve el sqldeveloper al intentar depurar (con el
icono de depuración). En el ejemplo 192.168.1.2. Luego necesitamos indicarle
el usuario de bbdd, en este caso EJEMPLO.
begin
dbms_network_acl_admin.append_host_ace
(host=>'192.168.1.2',
ace=> sys.xs$ace_type(privilege_list=>sys.XS$NAME_LIST('JDWP')
,
principal_name=>'EJEMPLO',
principal_type=>sys.XS_ACL.PTYPE_DB)
);
end;
/
Por último ejecutamos estas sentencias tras la creación de
la ACL, pasando como parámetro nuevamente el usuario de bbdd en caso, EJEMPLO y una vez ejecutadas, el sqldeveloper ya nos dejará depurar un paquete o
función, dándole al botón de bichito rojo.
grant execute on dbms_debug to EJEMPLO;
grant debug connect session to EJEMPLO;
grant debug any procedure to EJEMPLO;
Salu2.
0 comentarios:
Publicar un comentario