ftp包出现Oracle 11g过程错误

ftp包出现Oracle 11g过程错误,oracle,plsql,acl,plsqldeveloper,Oracle,Plsql,Acl,Plsqldeveloper,我的数据库遇到问题(版本为Oracle 11g) 我想做什么 我想使用程序将文件上载到ftp服务器 我做得怎么样 首先,我下载了ftp.pks和ftp.pkb文件,并使用@**.pks导入这些包 然后我编写了如下程序: DECLARE l_conn UTL_TCP.connection; BEGIN l_conn := ftp.login('192.168.1.102', '21', 'tony', 'tony'); ftp.ascii(p_conn => l_conn

我的数据库遇到问题(版本为Oracle 11g)

我想做什么

  • 我想使用程序将文件上载到ftp服务器
我做得怎么样

  • 首先,我下载了ftp.pksftp.pkb文件,并使用@**.pks导入这些包

  • 然后我编写了如下程序:

    DECLARE
      l_conn  UTL_TCP.connection;
    BEGIN
      l_conn := ftp.login('192.168.1.102', '21', 'tony', 'tony');
      ftp.ascii(p_conn => l_conn);
      ftp.put(p_conn      => l_conn,
              p_from_dir  => 'MY_DOCS',
              p_from_file => 'aaa.txt',
              p_to_file   => 'test_put.txt');
      ftp.logout(l_conn);
    END;
    
  • 当我运行它时,控制台会给我这个错误信息

  • 因此,我使用以下代码创建了
    ACL
    规则:

    begin
    
         DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
         acl          => 'ftp_conn.xml',
         description  => 'ftp connection',
         principal    => 'SCOTT',
         is_grant     => TRUE,
         privilege    => 'connect');
    
         DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
          acl         => 'ftp_conn.xml',
          host        => '192.168.1.102',
          lower_port  => 21,
          upper_port => 21);
    
    end;
    
但是,当我再次运行ftp代码时,它也会显示该错误,因此我想知道如何修复该错误

ACL
可以允许TCP连接,但当我使用ftp包并调用“
ftp.put
”时,控制台输出为


尝试添加解析权限(尽管听起来很奇怪…):


尝试添加解析权限(尽管听起来很奇怪…):


您在启用ACL后提交了吗?@A.B.Cade是的,我已经提交了更改。这有帮助吗?stackoverflow.com/questions/9827038/oracle-11g-migrated-users-have-acl-set-but-cant-hit-utl-http-ora-2447-29273/9858759@A.B.Cade您好。我发现我可以使用tcp连接,但是当我使用ftp包时,它会引发错误。“acl拒绝的网络访问”听起来另一个端口由于某种原因被阻止。对于某些FTP客户端,它可以正常工作?您在启用ACL后提交了吗?@A.B.Cade是的,我已经提交了更改。这有帮助吗?stackoverflow.com/questions/9827038/oracle-11g-migrated-users-have-acl-set-but-cant-hit-utl-http-ora-2447-29273/9858759@A.B.Cade您好。我发现我可以使用tcp连接,但是当我使用ftp包时,它会引发错误。“acl拒绝的网络访问”听起来另一个端口由于某种原因被阻止。对于某些FTP客户端,它可以正常工作?非常抱歉,错误信息格式不太好。错误在1行:ORA-29260:网络错误:未连接ORA-06512:at“SYS.UTL_TCP”,第212行ORA-06512:at“SYS.UTL_TCP”,第432行ORA-06512:at“SCOTT.FTP”,第413行ORA-242447:网络访问被acl ORA-06512:at“SCOTT.FTP”拒绝,第491行ORA-06512:第6行我很抱歉,错误信息格式不太好
第1行错误:ORA-29260:网络错误:未连接ORA-06512:在“SYS.UTL_TCP”,第212行ORA-06512:在“SYS.UTL_TCP”,第432行ORA-06512:在“SCOTT.FTP”,第413行ORA-2447:被acl ORA-06512拒绝的网络访问:在“SCOTT.FTP”,第491行ORA-06512:第6行
begin

     DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
     acl          => 'ftp_conn.xml',
     description  => 'ftp connection',
     principal    => 'SCOTT',
     is_grant     => TRUE,
     privilege    => 'connect');

     DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
      acl         => 'ftp_conn.xml',
      host        => '192.168.1.102',
      lower_port  => 21,
      upper_port => 21);

end;
error at 1 line:
ORA-29260: network error:not connected
ORA-06512: at "SYS.UTL_TCP", line 212
ORA-06512: at "SYS.UTL_TCP", line 432
ORA-06512: at "SCOTT.FTP", line 413
ORA-24247: Network access rejected by acl
ORA-06512: at "SCOTT.FTP", line 491
ORA-06512: at line 6
begin
 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
 acl          => 'ftp_conn.xml',
 description  => 'ftp connection',
 principal    => 'SCOTT',
 is_grant     => TRUE,
 privilege    => 'connect');

 DBMS_NETWORK_ACL_ADMIN.add_privilege ( 
acl         => 'ftp_conn.xml', 
principal   => 'SCOTT',
is_grant    => FALSE, 
privilege   => 'resolve', 
position    => NULL, 
start_date  => NULL,
end_date    => NULL);

 DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
  acl         => 'ftp_conn.xml',
  host        => '192.168.1.102',
  lower_port  => 21,
  upper_port => 21);

end;
/
COMMIT;