FTP - Oracle Forms - glufke.net - Dicas truques boas práticas Oracle Forms Reports SQL ...

Page 1 of 12

Logistics Consulting Logistics & Technology Solutions TMS and WMS Experts suppport www.tsolco.com
APRO E-Invoicing Proces of electronic invoices (Image in PDF, data file in XML) www.apro.nl
Load Testing Software Advanced load testing software. Free Trial. Download now! www.Paessler.com/load-testing/
FAQ

Procura

Membros

Registre-se

Perfil

MP's

Login/Out

FTP
  

   

   glufke.net - Índice do Fórum -> Forms

Mensagem

Autor
Deathão

Enviada: Qua, 29 Jun 2005 3:25 pm     Assunto: FTP

Rank: Programador Sênior

fala Pessoal e vai mais uma do meu caminhão de dúvidas aí!!!
Registrado em: Qui, 16 de
Junho de 2005
Mensagens: 57
Cidade - UF: Assis

gostaria de saber se existem alguma forma de mandar um arquivo para o FTP..
se tiver algum exemplo passar pra nóis aí..

forte abraço...
té a próxima, que não será muito demorada!!

OracleSkins.com - SSHR Brand Oracle Self-Service with custom look and feels (CLAFs) www.oracleskins.com
Maucallacta and Coropuna Visit & Explore the Inca Oracle in the highlands of Pampacolca Peru www.maucallacta.com
Gupta/Centura Developers? Automatically conver to C#/VB.NET and find the developers you need! www.iceteagroup.com

_________________
-Júnior
 
dr_gori

Enviada: Qui, 30 Jun 2005 9:37 am      

Moderador

Bem... Creio que a forma mais simples de você enviar algo por FTP é usar o
próprio comando FTP.
Tipo dá um HOST no seu form que chama o comando FTP.
Algo assim:

Registrado em: Seg, 3 de
Mai de 2004
Mensagens: 3260
Cidade - UF: Porto Alegre RS

Zoccoli Advogados - Porto Alegre / RS
Código:
host('ftp -s:envia.txt', NO_SCREEN);

O envia.txt fica mais ou menos assim:
Código:

open
ftp.seu_ftp.com.br
seu_login
sua_senha
put
seu_arquivo_local
seu_arquivo_destino
close

http://glufke.net/oracle/viewtopic.php?t=461

19-Oct-10

0.       *      v_error_message           VARCHAR2(1000).com      *       *  OVERVIEW       *  -------------------     *  This package uses the standard packages UTL_FILE and UTL_TCP to perform      *  client-side FTP functionality (PUT and GET) for text files as defined in      *  the World Wide Web Consortium's RFC 959 document .FTP . -. FTP_MULTIPLE takes      *  a table of records that define the files to be transferred (filename.LAST       *           LOOP       *              IF t_files.       *      t_files(3).       *      b_put                BOOLEAN.       *  DECLARE       *       *        v_username                VARCHAR2(40)    := 'rjohnson'.       *        These directories are defined by the UTL_FILE_DIR parameter in the init. GET.  PUT and GET return true if the file is transferred       *  successfully and false if it fails.t_files. etc.EXISTS(i)       *              THEN  http://glufke.       *      IF b_put = TRUE       *      THEN       *           FOR i IN t_files.txt'..remotepath        := '/home/oracle/xml_files'.http://www. 8.       *      t_files(2).1 GET and 2 PUT from a Windows machine to a host (assuming UNIX here).w3.php?t=461 19-Oct-10 .x may work if it has the SYS.t_ftp_rec.  The PUT and GET functions are included       *  for convenience to FTP one file at a time. Braun Consulting ----------------------------------------------------------------------- CREATE OR REPLACE PACKAGE BRNC_FTP_PKG AS     /**       *                                                                            *  PL/SQL FTP Client                                                        *               *  Created by: Russ Johnson.       *       *  USAGE       *  -------------------     *  Three functions are available for FTP .txt'.       *                             v_password.transfer_mode         := 'PUT'..filename          := 'incoming_file. then transferring the file to  a remote host.       *      v_password                VARCHAR2(40)    := 'password'. and FTP_MULTIPLE.Dicas truques boas práticas Oracle Forms Reports SQL .       *       *      t_files(2).  It also takes the       *  table of file records IN and passes it back OUT.       *      t_files(1).      *  Furthermore.FIRST.       *      t_files(1).Oracle Forms .       *      v_hostname                VARCHAR2(255)   := 'ftp.       *       *  DB versions .        *       *  LIMITATIONS       *  -------------------     *  Currently the API is limited to transfer of ASCII text files only.PUT.xml'. É claro.UTL_TCP package.).localpath        := 'd:\oracle\utl_file\outbound'.       *  That table can have 1 record or multiple records.com'. Braun Consulting       *       *  www.       *                             v_username.transfer_mode          := 'PUT'.. but also because the original       *  design was for creating text files from data in the Oracle database. directory. refused connection. this package is also limited to      *        transfer of files that exist in directories available to UTL_FILE for read/write.ora file.sql Purpose: PL/SQL FTP Client Date: 19-Nov-2003 Author: Russ Johnson.  FTP_MULTIPLE returns true if no batch-level errors occur      *  (such as an invalid host.remotepath        := '/home/oracle/text_files'.filename          := 'myfile1.org/Protocols/rfc959/        *  The procedures and functions in this package allow single or multiple file transfer using       *  standard TCP/IP connections.      *       *       *  Note: Since UTL_FILE is used for the client-side I/O.       *      t_files                   BRNC_FTP_PKG.localpath         := 'd:\oracle\utl_file\outbound'.       *                             t_files. Mas aí vai pra quem quiser testar.       *                             v_hostname).       *      t_files(2).x) and above.       *      t_files(3).       *      t_files(3).      *       *  EXAMPLE       *  -------------------     *  Transfer multiple files .filename         := 'myfile2. avisa a galera se funcionou!!! Código: rem rem rem rem rem rem ----------------------------------------------------------------------Filename: ftpclient..Declare our table of file records      *       *  BEGIN       *       *      t_files(1).remotepath            := '/home'.transfer_mode         := 'GET'.       *      t_files(1).FTP_MULTIPLE(v_error_message.braunconsult.net/oracle/viewtopic.       *      t_files(2).       *       *      b_put := BRNC_FTP_PKG.8i (8. or invalid login information).1.localpath         := 'd:\oracle\utl_file\inbound'.  This is       *  primarily because UTL_FILE only supports text I/O.. the API does not support SSH/Secure FTP or connection through a proxy server.       *  Keep in mind that FTP passes the username/password combo in plain text over TCP/IP.net .oracle.  Each record contains individual error  information.glufke.      *  Display any errors that occur. Page 2 of 12 bye Existe também uma outra forma que eu nunca testei.       *       *      t_files(3).

xml'       * remotepath .      *              END IF.FTP valid response codes      *       */      CONNECT_CODE   CONSTANT PLS_INTEGER := 220.status of the transfer.net .       *       *  http://www.      USER_CODE      CONSTANT PLS_INTEGER := 331.                trans_end      DATE).error_message||' | '||       *                             to_char(t_files(i).dat' 'myfile20021119.  Should be in UNIX format regardless of FTP server '/one/two/three'      * filetype .      LOGIN_CODE      CONSTANT PLS_INTEGER := 230.trans_end.       *       *  CREDITS       *  -------------------     *  The W3C's RFC 959 that describes the FTP process. Page 3 of 12      *                DBMS_OUTPUT.      TYPE_CODE      CONSTANT PLS_INTEGER := 200.      SYST_CODE      CONSTANT PLS_INTEGER := 215.filename and extension for the file to be received or sent      *          changing the filename for the PUT or GET is currently not allowed       *          Examples: 'myfile.org       *       *  Much of the PL/SQL code in this package was based on Java code written by       *  Bruce Blackshaw of Enterprise Distributed Technologies Ltd.      QUIT_CODE      CONSTANT PLS_INTEGER := 221.trans_start.Dicas truques boas práticas Oracle Forms Reports SQL .0     11/19/2002     Unit-tested single and multiple transfers between disparate hosts.meaningful (hopefully) error message explaining the reason for failure      * bytes_transmitted .       *      END IF.net/oracle/viewtopic.how many bytes were sent/received      * trans_start . ignored in code      * transfer_mode ..       *       *  http://www.                filetype       VARCHAR2(20).      /**       * FTP File record datatype       *       * Elements:       * localpath . 'ERROR' or 'SUCCESS'      * error_message .php?t=461 19-Oct-10 .      /**       * Constants .'YYYY-MM-DD HH:MI:SS')).status||' | '||       *                             t_files(i).                status       VARCHAR2(40).date/time the transmission ended      *       */      TYPE r_ftp_rec IS RECORD(localpath       VARCHAR2(255).com       *            *   VERSION HISTORY       *  --------------------        *  1.       *       *  EXCEPTION       *  WHEN OTHERS       *  THEN       *      DBMS_OUTPUT.       *      ELSE       *      DBMS_OUTPUT.      TSFR_START_CODE1   CONSTANT PLS_INTEGER := 125.full directory name in which the local file resides or will reside      *           Windows: 'd:\oracle\utl_file'       *           UNIX: '/home/oracle/utl_file'       * filename .Oracle Forms .                        *       *       */      /**       * Exceptions       *       */           ctrl_exception   EXCEPTION.                remotepath    VARCHAR2(255).glufke.                transfer_mode    VARCHAR2(5).      PASV_CODE      CONSTANT PLS_INTEGER := 227.       *           END LOOP.PUT_LINE(t_files(i).full directory name in which the local file will be sent or the      *            remote file exists.PUT_LINE(v_error_message).enterprisedt.date/time the transmission started      * trans_end .      TSFR_START_CODE2   CONSTANT PLS_INTEGER := 150.'YYYY-MM-DD HH:MI:SS')||' | '||      *                             to_char(t_files(i).      TSFR_END_CODE   CONSTANT PLS_INTEGER := 226.      /**       * FTP File Table .bytes_transmitted)||' | '||       *                             to_char(t_files(i).      CWD_CODE      CONSTANT PLS_INTEGER := 250.                trans_start   DATE.reserved for future use.PUT_LINE(SQLERRM).used to store many files for transfer      *  http://glufke.       *  END.      PWD_CODE      CONSTANT PLS_INTEGER := 257.  None of that code       *  was copied.                error_message    VARCHAR2(255)..                bytes_transmitted    NUMBER.      data_exception   EXCEPTION.w3c.FTP . but the objects and methods greatly helped my understanding of the       *  FTP Client process.'PUT' or 'GET'      * status .                filename       VARCHAR2(255).

 error message.       *           bytes_transmitted.             p_hostname IN VARCHAR2.CONNECTION.             p_pasv_port OUT NUMBER).       *       */      FUNCTION FTP_MULTIPLE(p_error_msg OUT VARCHAR2.             p_password IN VARCHAR2.       *       */         PROCEDURE CREATE_PASV(p_pasv_cmd IN VARCHAR2.             p_files IN OUT t_ftp_rec.               p_code2   IN PLS_INTEGER.Oracle Forms . Accepts      *           list of files to be transferred (may be any combination of PUT or GET)       *           returns the table updated with transfer status.           p_pasv_port IN PLS_INTEGER.Dicas truques boas práticas Oracle Forms Reports SQL .password for FTP server      * p_hostname .0.           p_filename IN VARCHAR2. transmission start date/time and transmission end       *           date/time       * p_username .  Meant       * for internal package use.  Reads single or multi-line responses.CONNECTION.com' or '127.      /**       * Function to handle FTP of many files.               p_code    IN PLS_INTEGER.             p_pasv_host OUT VARCHAR2..oracle.0.      * Returns FALSE if a batch-level error occurs.      * Overloaded because some responses can have 2 valid codes.      /**       * Convenience function for single-file PUT      *       * Parameters:       * p_localpath .      /**       * Procedure that handles the actual data transfer.xml'       * p_remotepath .       *       */      FUNCTION VALIDATE_REPLY(p_ctrl_con    IN OUT UTL_TCP.           v_status OUT VARCHAR2.BRNC_FTP_PKG.0..           p_transfer_mode IN VARCHAR2.             p_username IN VARCHAR2.               p_reply    OUT VARCHAR2)         RETURN BOOLEAN.FTP server IP address or host name Ex: 'ftp. FTP is usually on 21.full directory name in which the local file resides or will reside      *           Windows: 'd:\oracle\utl_file'       *           UNIX: '/home/oracle/utl_file'       * p_filename .0.dat' 'myfile20021119.password for FTP server      * p_hostname .FTP .       *       */      PROCEDURE TRANSFER_ASCII(u_ctrl_con IN OUT UTL_TCP.           v_error_message OUT VARCHAR2.           n_bytes_transmitted OUT NUMBER.1'      * p_port .glufke.php?t=461 19-Oct-10 .      /**       * Internal convenience procedure for creating passive host IP address       * and port number.username for FTP server      * p_password .      *       */      FUNCTION VALIDATE_REPLY(p_ctrl_con    IN OUT UTL_TCP.1' http://glufke.hostname or IP address of server Ex: 'ftp.      /**       * Function used to validate FTP server responses based on the       * code passed in p_code.CONNECTION.  Reads single or multi-line responses.           d_trans_start OUT DATE.com' or '127.full directory name in which the local file will be sent or the      *            remote file exists.net/oracle/viewtopic.filename and extension for the file to be received or sent      *          changing the filename for the PUT or GET is currently not allowed       *          Examples: 'myfile. but this may be overridden      *          if the server is configured differently.oracle.error message for batch level errors      * p_files .      *       * Parameters:       *       * p_error_msg . Page 4 of 12      */      TYPE t_ftp_rec IS TABLE of r_ftp_rec INDEX BY BINARY_INTEGER.  Returns information about the       * actual transfer.                          d_trans_end OUT DATE).               p_reply    OUT VARCHAR2)     RETURN BOOLEAN.username for FTP server      * p_password .      /**       * Function used to validate FTP server responses based on the       * code passed in p_code.           p_pasv_host IN VARCHAR2.port number to connect on.       * Returns TRUE if no batch-level errors occur.               p_code1    IN PLS_INTEGER.net .             p_port IN PLS_INTEGER DEFAULT 21)         RETURN BOOLEAN.  Should be in UNIX format regardless of FTP server '/one/two/three'      * p_username .t_ftp_rec table type.           p_localpath IN VARCHAR2.

1.how many bytes were sent/received      * d_trans_start .date/time the transmission ended      * p_port .').'.1.Oracle Forms .'.1.password for FTP server      * p_hostname .'.5)-(INSTR (v_pasv_cmd. default is 21      * p_filetype .  --Host and port to connect to for data transfer         n_port_dec   NUMBER.net . reserved for future use.'.FTP server IP address or host name Ex: 'ftp..        p_username IN VARCHAR2.0.        p_username IN VARCHAR2.      /**       * Convenience function for single-file GET      *       * Parameters:       * p_localpath .FTP .always set to 'ASCII'.Dicas truques boas práticas Oracle Forms Reports SQL . Page 5 of 12      * v_status .net/oracle/viewtopic.date/time the transmission started      * d_trans_end . 'ERROR' or 'SUCCESS'      * v_error_message .                  d_trans_end OUT DATE.status of the transfer.        p_port      IN PLS_INTEGER DEFAULT 21.'.date/time the transmission ended      * p_port .'.always set to 'ASCII'. default is 21      * p_filetype .0.             p_pasv_port OUT NUMBER)      IS     v_pasv_cmd   VARCHAR2(30) :=  p_pasv_cmd.port number to connect to.  END BRNC_FTP_PKG.        p_filetype IN VARCHAR2 := 'ASCII')         RETURN BOOLEAN.username for FTP server      * p_password .PUT_LINE(SQLERRM).5))). ignored in code      *       */      FUNCTION PUT(p_localpath IN VARCHAR2.     n_port_add   NUMBER.        p_filename IN VARCHAR2.meaningful (hopefully) error message explaining the reason for failure      * n_bytes_transmitted .'.'.    n_port_add := TO_NUMBER(SUBSTR(v_pasv_cmd.        v_error_message OUT VARCHAR2.'.        p_port      IN PLS_INTEGER DEFAULT 21.1. 'ERROR' or 'SUCCESS'      * v_error_message .oracle.        d_trans_start OUT DATE.        n_bytes_transmitted OUT NUMBER.glufke.'.xml'       * p_remotepath .1'      * v_status .        d_trans_start OUT DATE. http://glufke.        p_password IN VARCHAR2. / CREATE OR REPLACE PACKAGE BODY BRNC_FTP_PKG AS     /*****************************************************************************      **  Create the passive host IP and port number to connect to      **      *****************************************************************************/      PROCEDURE CREATE_PASV(p_pasv_cmd IN VARCHAR2.port number to connect to.LENGTH(v_pasv_cmd)-INSTR (v_pasv_cmd.how many bytes were sent/received      * d_trans_start .                  d_trans_end OUT DATE.        p_hostname IN VARCHAR2.  Should be in UNIX format regardless of FTP server '/one/two/three'      * p_username .filename and extension for the file to be received or sent      *          changing the filename for the PUT or GET is currently not allowed       *          Examples: 'myfile.4)+1.date/time the transmission started      * d_trans_end .'.'.1.1.        p_password IN VARCHAR2.    n_port_dec := TO_NUMBER(SUBSTR(v_pasv_cmd.      EXCEPTION      WHEN OTHERS      THEN         --DBMS_OUTPUT.        p_remotepath IN VARCHAR2.        p_filetype IN VARCHAR2 := 'ASCII')         RETURN BOOLEAN.        v_status OUT VARCHAR2. ignored in code      *       */      FUNCTION GET(p_localpath IN VARCHAR2.    p_pasv_port := (n_port_dec*256) + n_port_add.php?t=461 19-Oct-10 .INSTR(v_pasv_cmd. reserved for future use.'.status of the transfer.full directory name in which the local file will be sent or the      *            remote file exists.'.INSTR(v_pasv_cmd.com' or '127.INSTR(v_pasv_cmd.full directory name in which the local file resides or will reside      *           Windows: 'd:\oracle\utl_file'       *           UNIX: '/home/oracle/utl_file'       * p_filename .dat' 'myfile20021119.        v_status OUT VARCHAR2.        n_bytes_transmitted OUT NUMBER.1.meaningful (hopefully) error message explaining the reason for failure      * n_bytes_transmitted .             BEGIN     p_pasv_host := REPLACE(SUBSTR(v_pasv_cmd.(INSTR(v_pasv_cmd.        p_hostname IN VARCHAR2.4)-1).4)+1)))).'.        p_remotepath IN VARCHAR2.5)+1.        v_error_message OUT VARCHAR2.             p_pasv_host OUT VARCHAR2..        p_filename IN VARCHAR2.

   END LOOP.               p_code    IN PLS_INTEGER.1.         END IF.v_code2)     THEN         RETURN TRUE.      **      **  Return TRUE if reply code matches p_code.      /*****************************************************************************      **  Handles actual data transfer.4).GET_LINE(p_ctrl_con). error message.     END IF.1.CONNECTION.               p_reply    OUT VARCHAR2)      RETURN BOOLEAN      IS     v_code1    VARCHAR2(3) := to_char(p_code1).glufke.GET_LINE(p_ctrl_con).     v_msg      VARCHAR2(255).               p_reply    OUT VARCHAR2)      RETURN BOOLEAN      IS     n_code       VARCHAR2(3) := p_code.         n_line_count := n_line_count + 1.               p_code1    IN PLS_INTEGER.      EXCEPTION      WHEN OTHERS      THEN          p_reply := SQLERRM.         n_line_count := n_line_count + 1.     END IF.      EXCEPTION      WHEN OTHERS      THEN          p_reply := SQLERRM.FTP ..4).          RETURN FALSE.1.3)) IN(v_code1.          IF to_number(SUBSTR(p_reply.CONNECTION.Dicas truques boas práticas Oracle Forms Reports SQL .      BEGIN     LOOP         v_msg := UTL_TCP.'-'.         ELSE        p_reply := p_reply || SUBSTR(v_msg.Oracle Forms .     n_line_count   PLS_INTEGER := 0.         IF n_line_count = 1         THEN        p_reply := v_msg.net .php?t=461 19-Oct-10 .         EXIT WHEN INSTR(v_msg.      END CREATE_PASV.         END IF.      **  FALSE if it doesn't or error occurs      **      **  Send full server response back to calling procedure      *****************************************************************************/      FUNCTION VALIDATE_REPLY(p_ctrl_con    IN OUT UTL_TCP.      /*****************************************************************************      **  Read a single or multi-line reply from the FTP server and validate     **  it against the code passed in p_code.      END VALIDATE_REPLY.1) <> 4.net/oracle/viewtopic..          IF to_number(SUBSTR(p_reply.     v_code2    VARCHAR2(3) := to_char(p_code2).CONNECTION.          RETURN FALSE.         IF n_line_count = 1         THEN        p_reply := v_msg.      /*****************************************************************************      **  Reads a single or multi-line reply from the FTP server     **      **  Return TRUE if reply code matches p_code1 or p_code2.1) <> 4.     v_msg      VARCHAR2(255).  http://glufke.         ELSE        p_reply := p_reply || SUBSTR(v_msg.'-'.     ELSE         RETURN FALSE.     ELSE         RETURN FALSE. Page 6 of 12    RAISE.      **      **  Potential errors could be with connection or file i/o      **      *****************************************************************************/      PROCEDURE TRANSFER_ASCII(u_ctrl_con IN OUT UTL_TCP.    END LOOP. and      **  transfer statistics.         EXIT WHEN INSTR(v_msg.  Responds with status.               p_code2   IN PLS_INTEGER.           p_localpath IN VARCHAR2.     n_byte_count    PLS_INTEGER.1.3)) = n_code     THEN         RETURN TRUE. FALSE if it doesn't or error      **  occurs      **      **  Send full server response back to calling procedure      *****************************************************************************/           FUNCTION VALIDATE_REPLY(p_ctrl_con    IN OUT UTL_TCP.     n_line_count   PLS_INTEGER := 0.      BEGIN     LOOP         v_msg := UTL_TCP.      END VALIDATE_REPLY.

PUT_LINE(u_filehandle.     n_bytes_transmitted   := 0.net .FTP .          v_tsfr_cmd      VARCHAR2(10).     d_trans_start := SYSDATE.TRUE).           d_trans_start OUT DATE.                                      EXCEPTION                WHEN UTL_TCP.     IF UPPER(v_tsfr_mode) = 'PUT'     THEN         LOOP            BEGIN               UTL_FILE.     END IF.            n_bytes_transmitted := n_bytes_transmitted + n_bytes.TSFR_START_CODE1.           BEGIN     /** Initialize some of our OUT variables **/     v_status      := 'SUCCESS'.FOPEN(v_localpath.php?t=461 19-Oct-10 .         v_tsfr_cmd  := 'RETR '.           n_bytes_transmitted OUT NUMBER.           v_status OUT VARCHAR2.glufke.     v_filename      VARCHAR2(255)    := p_filename.     v_msg         VARCHAR2(255).            /** Sometimes the TCP/IP buffer sends null data **/                      /** we only want to receive the actual data **/            IF v_buffer IS NOT NULL            THEN                UTL_FILE.v_mode).           v_error_message OUT VARCHAR2.           p_transfer_mode IN VARCHAR2.     /** Open data connection on Passive host and port **/     u_data_con := UTL_TCP.v_filename.WRITE_LINE(u_ctrl_con.             END LOOP.     /** Send the STOR command to tell the server we're going to upload a file **/     n_bytes := UTL_TCP.TSFR_START_CODE2.     IF VALIDATE_REPLY(u_ctrl_con.FILE_TYPE.v_buffer).v_buffer).         v_tsfr_cmd    := 'STOR '.     v_buffer      VARCHAR2(32767).     v_host         VARCHAR2(20)     := p_pasv_host.GET_LINE(u_filehandle.           p_pasv_port IN PLS_INTEGER.     n_bytes         NUMBER.                    n_bytes_transmitted := n_bytes_transmitted + n_bytes.     u_filehandle      UTL_FILE.           p_pasv_host IN VARCHAR2..OPEN_CONNECTION(v_host.     v_reply         VARCHAR2(1000).     v_mode         VARCHAR2(1).END_OF_INPUT                THEN                EXIT. Page 7 of 12          p_filename IN VARCHAR2.CONNECTION..  http://glufke.            END IF.                EXCEPTION                WHEN NO_DATA_FOUND                THEN                EXIT.v_buffer).     v_error_message      := ' '.v_reply) = FALSE     THEN         RAISE ctrl_exception.                          d_trans_end OUT DATE)      IS     u_data_con      UTL_TCP.     /** Open the local file to read and transfer data **/     u_filehandle := UTL_FILE.     v_err_status      VARCHAR2(20) := 'ERROR'.     ELSIF UPPER(v_tsfr_mode) = 'GET'     THEN         v_mode   := 'w'.n_port).     n_port         PLS_INTEGER    := p_pasv_port.     v_localpath      VARCHAR2(255)    := p_localpath.                    n_bytes := LENGTH(v_buffer).            END.     ELSIF UPPER(v_tsfr_mode) = 'GET'     THEN         LOOP        BEGIN               v_buffer := UTL_TCP.            n_bytes := UTL_TCP.Oracle Forms .          v_tsfr_mode      VARCHAR2(3) := p_transfer_mode.net/oracle/viewtopic.GET_LINE(u_data_con.     IF UPPER(v_tsfr_mode) = 'PUT'          THEN         v_mode    := 'r'.            END.v_tsfr_cmd||v_filename).Dicas truques boas práticas Oracle Forms Reports SQL .WRITE_LINE(u_data_con.          END IF.

internal_error      THEN     v_status := v_err_status.    d_trans_end := SYSDATE..FCLOSE(u_filehandle).     v_error_message := 'The UTL_FILE package encountered an unexpected internal system error.     v_error_message := v_reply.'.Dicas truques boas práticas Oracle Forms Reports SQL .     END IF.        IF UTL_FILE.     IF UTL_FILE.'.     UTL_TCP.Oracle Forms .CLOSE_CONNECTION(u_data_con).TSFR_END_CODE.     v_error_message := 'The system encountered an error while trying to write to '||v_filename||' in the  directory '||v_localpath.'.      WHEN UTL_FILE.    END IF.     v_error_message := 'Directory '||v_localpath||' is not available to UTL_FILE.FCLOSE(u_filehandle).CLOSE_CONNECTION(u_data_con).CLOSE_CONNECTION(u_data_con).      WHEN UTL_FILE.     /** Close the Data Connection **/     UTL_TCP.CLOSE_CONNECTION(u_data_con).glufke.CLOSE_CONNECTION(u_data_con).FCLOSE(u_filehandle).FCLOSE(u_filehandle).     UTL_TCP.CLOSE_CONNECTION(u_data_con).      EXCEPTION      WHEN ctrl_exception      THEN     v_status := v_err_status.FCLOSE(u_filehandle).net .v_reply) = FALSE     THEN         RAISE ctrl_exception.write_error      THEN     v_status := v_err_status.     /** Close the file **/     UTL_FILE.    ELSIF UPPER(v_tsfr_mode) = 'GET'     THEN         v_error_message := 'The file '||V_filename||' in the directory '||v_localpath||' could not be  opened for writing.      WHEN OTHERS      THEN  http://glufke.CLOSE_CONNECTION(u_data_con).    UTL_TCP.     IF UTL_FILE.IS_OPEN(u_filehandle)     THEN         UTL_FILE.invalid_path      THEN     v_status    := v_err_status.'.IS_OPEN(u_filehandle)     THEN         UTL_FILE.     UTL_TCP.IS_OPEN(u_filehandle)     THEN         UTL_FILE.FLUSH(u_data_con).     UTL_TCP.invalid_operation      THEN     v_status := v_err_status.     IF UPPER(v_tsfr_mode) = 'PUT'     THEN         v_error_message := 'The file '||V_filename||' in the directory '||v_localpath||' could not be  opened for reading.     /** Flush the buffer on the data connection **/     --UTL_TCP.     UTL_TCP.FCLOSE(u_filehandle).    IF UTL_FILE.     END IF.     v_error_message := 'The system encountered an error while trying to read '||v_filename||' in the  directory '||v_localpath.      WHEN UTL_FILE.php?t=461 19-Oct-10 .IS_OPEN(u_filehandle)     THEN         UTL_FILE.read_error      THEN     v_status := v_err_status.     END IF.IS_OPEN(u_filehandle)     THEN         UTL_FILE.     /** Verify the transfer succeeded **/     IF VALIDATE_REPLY(u_ctrl_con.     END IF.      WHEN UTL_FILE.    IF UTL_FILE.     END IF.             END IF.FTP .ora file  for valid UTL_FILE directories. Page 8 of 12            END LOOP.      WHEN UTL_FILE.     END IF.net/oracle/viewtopic..  Check the init.

     END IF.      BEGIN     p_error_msg := 'FTP Successful'.CLOSE_CONNECTION(u_data_con).1)-INSTR (v_reply.p_files.1.net .WRITE_LINE(u_ctrl_con. Page 9 of 12    v_status := v_err_status.     v_msg         VARCHAR2(250).               CREATE_PASV(SUBSTR(v_reply.Dicas truques boas práticas Oracle Forms Reports SQL .LOGIN_CODE.            /** Send password **/     n_byte_count := UTL_TCP.'PASV').'TYPE I').     IF VALIDATE_REPLY(u_ctrl_con.             p_password IN VARCHAR2.WRITE_LINE(u_ctrl_con.v_pasv_host.'CWD '||p_files(i).1.v_reply) = FALSE     THEN         RAISE ctrl_exception.     v_password       VARCHAR2(30)    := p_password.            /** Get a Passive connection to use for data transfer **/                       n_byte_count := UTL_TCP.          v_pasv_host      VARCHAR2(20).      END TRANSFER_ASCII.     v_error_message := SQLERRM..v_reply) = FALSE            THEN                   RAISE ctrl_exception.     n_byte_count      PLS_INTEGER.OPEN_CONNECTION(v_hostname.            IF VALIDATE_REPLY(u_ctrl_con.v_reply) = FALSE     THEN         RAISE ctrl_exception.TYPE_CODE.php?t=461 19-Oct-10 .            /** Switch to IMAGE mode **/            n_byte_count := UTL_TCP.CONNECT_CODE.     IF UTL_FILE.     END IF.FIRST.glufke.             p_files IN OUT t_ftp_rec.     END IF.Oracle Forms .     v_reply         VARCHAR2(1000).            END IF.     IF VALIDATE_REPLY(u_ctrl_con.transfer_mode) = 'PUT'  http://glufke.     IF VALIDATE_REPLY(u_ctrl_con.CWD_CODE.EXISTS(i)         THEN        BEGIN            /** Change to the remotepath directory **/            n_byte_count := UTL_TCP.1)-1).WRITE_LINE(u_ctrl_con.WRITE_LINE(u_ctrl_con.v_reply) = FALSE     THEN         RAISE ctrl_exception.1)+1.WRITE_LINE(u_ctrl_con..v_reply) = FALSE            THEN                   RAISE ctrl_exception.           /** Transfer Data **/            IF UPPER(p_files(i).'PASS '||v_password).FTP .INSTR(v_reply.     END IF.remotepath).            IF VALIDATE_REPLY(u_ctrl_con.USER_CODE.1.            IF VALIDATE_REPLY(u_ctrl_con.            END IF.     invalid_transfer   EXCEPTION.INSTR(v_reply..             p_username IN VARCHAR2. time to transfer all files **/     FOR i IN p_files.v_reply) = FALSE            THEN                   RAISE ctrl_exception.IS_OPEN(u_filehandle)     THEN         UTL_FILE.             p_hostname IN VARCHAR2.net/oracle/viewtopic.PASV_CODE.'('.  --Assume the overall transfer will succeed    /** Attempt to connect to the host machine **/     u_ctrl_con := UTL_TCP.     n_first_index      NUMBER.     u_ctrl_con      UTL_TCP.LAST          LOOP         IF p_files.CONNECTION.FCLOSE(u_filehandle).n_port).      /*****************************************************************************      **  Handles connection to host and FTP of multiple files      **  Files can be any combination of PUT and GET      **      *****************************************************************************/      FUNCTION FTP_MULTIPLE(p_error_msg OUT VARCHAR2.     UTL_TCP.'USER '||v_username).     /** We should be logged in.     n_port         PLS_INTEGER    := p_port.n_pasv_port).             p_port IN PLS_INTEGER DEFAULT 21)      RETURN BOOLEAN      IS     v_username       VARCHAR2(30)    := p_username.'('.')'.     /** Send username **/     n_byte_count := UTL_TCP.            END IF.          n_pasv_port      NUMBER.     v_hostname       VARCHAR2(30)    := p_hostname.

     /** Don't need to validate QUIT.              p_files(i).localpath.filename.net/oracle/viewtopic.     v_password   VARCHAR2(50)    := p_password.        p_password IN VARCHAR2.CLOSE_ALL_CONNECTIONS.        p_port      IN PLS_INTEGER DEFAULT 21.status.        p_filetype IN VARCHAR2 := 'ASCII')      RETURN BOOLEAN      IS     t_files    t_ftp_rec.WRITE_LINE(u_ctrl_con.'QUIT').     t_files(1).bytes_transmitted.bytes_transmitted.php?t=461 19-Oct-10 . -.              p_files(i).Raise an exception here           END IF.error_message.CLOSE_ALL_CONNECTIONS. just close the connection **/     UTL_TCP. Page 10 of 12           THEN           TRANSFER_ASCII(u_ctrl_con.transfer_mode) = 'GET'            THEN           TRANSFER_ASCII(u_ctrl_con.      /*****************************************************************************      **  Convenience function for single-file PUT     **  Formats file information for FTP_MULTIPLE function and calls it.     UTL_TCP.FTP .         END IF.            ELSIF UPPER(p_files(i).status.        END.                             p_files(i).     UTL_TCP.        p_hostname IN VARCHAR2.'..transfer_mode   := 'PUT'.trans_end).status := 'ERROR'.Oracle Forms .glufke.                EXCEPTION        WHEN ctrl_exception        THEN            p_files(i).     RETURN FALSE.              p_files(i).              p_files(i).              n_pasv_port.     RETURN FALSE.trans_start.      EXCEPTION      WHEN ctrl_exception      THEN     p_error_msg := v_reply.     n_port      PLS_INTEGER    := p_port.     t_files(1).  http://glufke.      **      *****************************************************************************/      FUNCTION PUT(p_localpath IN VARCHAR2.      END FTP_MULTIPLE.        v_status OUT VARCHAR2.            ELSE           RAISE invalid_transfer.error_message := 'Invalid transfer method.trans_end).              v_pasv_host.        d_trans_start OUT DATE.      BEGIN     t_files(1).trans_start.net .              p_files(i).              p_files(i).Dicas truques boas práticas Oracle Forms Reports S.              p_files(i).  Use PUT or GET.              p_files(i).transfer_mode.        p_username IN VARCHAR2.     b_ftp      BOOLEAN.filetype      := p_filetype.filename.     RETURN TRUE.                  d_trans_end OUT DATE.          v_err_msg   VARCHAR2(255).     b_ftp := FTP_MULTIPLE(v_err_msg.                             p_files(i).error_message := v_reply.remotepath      := p_remotepath.        p_filename IN VARCHAR2.status := 'ERROR'.CLOSE_CONNECTION(u_ctrl_con).     v_username   VARCHAR2(30)    := p_username.              v_pasv_host.     t_files(1)..        v_error_message OUT VARCHAR2.     t_files(1).error_message.filename        := p_filename.              p_files(i).transfer_mode.     /** Send QUIT command **/     n_byte_count := UTL_TCP.              p_files(i).            p_files(i).              p_files(i).        WHEN invalid_transfer        THEN            p_files(i).     END LOOP.            p_files(i).localpath.              p_files(i).      WHEN OTHERS      THEN     p_error_msg := SQLERRM.              p_files(i).        n_bytes_transmitted OUT NUMBER.              p_files(i).     v_hostname   VARCHAR2(100)    := p_hostname.        p_remotepath IN VARCHAR2.localpath      := p_localpath.              n_pasv_port.

        p_hostname IN VARCHAR2.     t_files(1).bytes_transmitted.     RETURN FALSE.remotepath      := p_remotepath.     v_password   VARCHAR2(50)    := p_password.     IF b_ftp = FALSE     THEN         v_status := 'ERROR'.     ELSIF b_ftp = TRUE     THEN         v_status          := t_files(1).                  d_trans_end OUT DATE.         d_trans_start    := t_files(1).         RETURN FALSE.     END IF.         d_trans_end       := t_files(1). / NO GUOB TECHDAY!!! Editado pela última vez por dr_gori em Qui.           v_password.error_message.        p_port      IN PLS_INTEGER DEFAULT 21..status.     t_files(1).     RETURN FALSE.           v_password.           n_port).trans_end.php?t=461 19-Oct-10 .     END IF. num total de 1 vez http://glufke.      EXCEPTION      WHEN OTHERS      THEN     v_status    := 'ERROR'.transfer_mode   := 'GET'.        p_filename IN VARCHAR2.         v_error_message       := t_files(1).         v_error_message := v_err_msg. 30 Jun 2005 10:19 am.     IF b_ftp = FALSE     THEN         v_status := 'ERROR'.     v_error_message := SQLERRM..      BEGIN     t_files(1).     v_error_message := SQLERRM.        d_trans_start OUT DATE.           v_username.filename        := p_filename.           n_port).Oracle Forms .     --DBMS_OUTPUT.        p_username IN VARCHAR2.net .     END PUT.         v_error_message := v_err_msg.     b_ftp      BOOLEAN.net/oracle/viewtopic.bytes_transmitted.     n_port      PLS_INTEGER    := p_port.     END GET.         RETURN FALSE.         d_trans_start       := t_files(1).        n_bytes_transmitted OUT NUMBER.     v_hostname   VARCHAR2(100)    := p_hostname.filetype      := p_filetype.        p_password IN VARCHAR2. Page 11 of 12          t_files.           t_files.     ELSIF b_ftp = TRUE     THEN         v_status       := t_files(1).trans_start.        v_status OUT VARCHAR2.           v_username.          v_err_msg   VARCHAR2(255).     --DBMS_OUTPUT. / _________________ Thomas F.localpath      := p_localpath.         d_trans_end    := t_files(1).status.Dicas truques boas práticas Oracle Forms Reports S.glufke.        p_remotepath IN VARCHAR2.     t_files(1).         RETURN TRUE.     v_username   VARCHAR2(30)    := p_username.error_message.        v_error_message OUT VARCHAR2.trans_start.        p_filetype IN VARCHAR2 := 'ASCII')      RETURN BOOLEAN      IS     t_files    t_ftp_rec.     b_ftp := FTP_MULTIPLE(v_err_msg.      EXCEPTION      WHEN OTHERS      THEN     v_status    := 'ERROR'.         n_bytes_transmitted := t_files(1).         n_bytes_transmitted    := t_files(1).     t_files(1).      /*****************************************************************************      **  Convenience function for single-file GET     **  Formats file information for FTP_MULTIPLE function and calls it. G.           v_hostname.trans_end.  END BRNC_FTP_PKG.           v_hostname.FTP .PUT_LINE(SQLERRM).PUT_LINE(SQLERRM).         RETURN TRUE.         v_error_message    := t_files(1).      **      *****************************************************************************/      FUNCTION GET(p_localpath IN VARCHAR2.

net/oracle/viewtopic.FTP .Dicas truques boas práticas Oracle Forms Reports S. http://glufke.. hahahaha valeu Dr.net .Índice do Fórum -> Forms   Antigas primeiro   Ir Todos os horários são GMT ...net . Registrado em: Qui.php?t=461 19-Oct-10 ..glufke.. Page 12 of 12 Deathão Enviada: Qui. 30 Jun 2005 10:02 am      Rank: Programador Sênior cara***.Oracle Forms ..UF: Assis _________________ -Júnior   Mostrar os tópicos anteriores: Todas as mensagens        glufke.3 Hours Página 1 de 1     . que "códigão".. 16 de Junho de 2005 Mensagens: 57 Cidade .

Sign up to vote on this title
UsefulNot useful