Oracle 通过FTP发送时使用ORA-24247

Oracle 通过FTP发送时使用ORA-24247,oracle,ftp,ora-24247,Oracle,Ftp,Ora 24247,我已经尝试解决这个问题好几天了,我总是一次又一次地犯同样的错误。我是用户Oracle SQL Developer版本3.2.20.09,我想用此代码通过FTP发送文件 CREATE OR REPLACE PROCEDURE subirFTP(dirServer VARCHAR2, port VARCHAR2, usr VARCHAR2, pass VARCHAR2, dirRemitente VARCHAR2, dirDestinatario VARCHAR2, nombreArchi

我已经尝试解决这个问题好几天了,我总是一次又一次地犯同样的错误。我是用户Oracle SQL Developer版本3.2.20.09,我想用此代码通过FTP发送文件

    CREATE OR REPLACE 
PROCEDURE subirFTP(dirServer VARCHAR2, port VARCHAR2, usr VARCHAR2, pass VARCHAR2, dirRemitente VARCHAR2, dirDestinatario VARCHAR2, nombreArchivo VARCHAR2)
IS
  l_conn  UTL_TCP.connection;
BEGIN
  l_conn := ftp.login(dirServer,port,usr,pass);
  ftp.binary(p_conn => l_conn);
  ftp.put(p_conn => l_conn,
          p_from_dir => dirRemitente,
          p_from_file => nombreArchivo,
          p_to_file => dirDestinatario);
  ftp.logout(l_conn);
END subirFTP;

Informe de error:
ORA-24247: acceso de red denegado por la lista de control de acceso (ACL)
ORA-06512: en "SYS.UTL_TCP", línea 17
ORA-06512: en "SYS.UTL_TCP", línea 267
ORA-06512: en "WORKFLOW.FTP", línea 76
ORA-06512: en "WORKFLOW.SUBIRFTP", línea 5
ORA-06512: en línea 2

由于ACL(访问控制列表)限制,此错误将在11g上出现。您需要向“工作流”用户授予与FTP服务器通信的权限

您可以在中查看现有的补助金

select * from dba_network_acls
您的dba可以通过以下方式授予访问权限:

begin
  dbms_network_acl_admin.create_acl(acl => 'ftp.xml',
                                    description => 'Enables FTP',
                                    principal => 'WORKFLOW', 
                                    is_grant => true,
                                    privilege => 'connect');
end;
/
begin
  dbms_network_acl_admin.assign_acl(acl => 'ftp.xml',
                                    host => 'yourhost.com',
                                    lower_port => ftp port);
end;
/
commit;

有关更多信息,请参阅。

我尝试使用select*from dba\u network\u ACL,它显示了此错误代码错误SQL:ORA-00942:表或视图不存在。该表是只有dba才能看到的吗?@AllanMiranda-不一定只有dba才能看到,任何拥有足够权限的人都可以看到(例如,
选择任何字典
);但是,您还需要在
dbms\u network\u acl\u admin
包中具有executeprivs的人员来设置这些权限。因此,您可能需要在某个时候让您的DBA参与进来,或者为您这样做,或者授予您自己进行设置所需的权限。