2012-03-26 2 views
2

Я столкнулся с проблемой с моей базой данных (версия Oracle 11g).Ошибка процедуры Oracle 11g с пакетами ftp

Что я хотел бы сделать?

  • Я хочу использовать процедуры для загрузки файла на ftp-сервер.

Как я это сделал?

  • первых, у меня есть скачать ftp.pks и ftp.pkb файлов и я использую @ **. ПКС импортировать этот пакет.

  • , а затем я код процедуры, как это:

    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; 
    
  • , когда я запускаю его, консоль дать мне эту информацию об ошибке

ORA-24247: network access rejected by ACL 
    ORA-06512: at "SYS.UTL_TCP", line 17 
    ORA-06512: at "SYS.UTL_TCP", line 246 
    ORA-06512: at "SCOTT.FTP", line 76 
    ORA-06512: at line 4 
  • и для этого , я создал 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.put», выход консоли

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 
+0

Вы совершили после присвоения ACL? –

+0

@ A.B.Cade да, я совершил изменения. – Tony

+0

может это помочь? stackoverflow.com/questions/9827038/oracle-11g-migrated-users-have-acl-set-but-cant-hit-utl-http-ora-24247-29273/9858759 –

ответ

0

Try добавить Решимость привилегию (хотя это звучит странно ...):

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; 
+1

Мне очень жаль, формат информации об ошибках не очень
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 Tony