Oracle存储过程中执行utl_inaddr.get_host_address,报错ORA-24247
按如下步骤解决:
1.创建 ACL
begin
dbms_network_acl_admin.create_acl (
acl => 'UTL_INADDR.xml',
description => 'utl_inaddr',
principal => 'SCHE', --执行存过的用户
is_grant => TRUE,
privilege => 'resolve'
);
commit;
end;
/
2.增加权限
begin
dbms_network_acl_admin.add_privilege (
acl => 'UTL_INADDR.xml',
principal => 'SCHE', --执行存过的用户
is_grant => TRUE,
privilege => 'connect'
);
commit;
end;
/
3.授予用户权限
begin
dbms_network_acl_admin.assign_acl(
acl => 'UTL_INADDR.xml',
host => '*'
);
commit;
end;
/
如果想删除ACL,可按如下:
BEGIN
DBMS_NETWORK_ACL_ADMIN.drop_acl (
acl => 'UTL_INADDR.xml');
COMMIT;
END;
/