2014-04-01 15 views
0

我已經成功了package and package body from Oracle-base given by Tim Hall編譯,PL/SQL API FTP二進制VS ASCII模式

我在我的本地服務器中的.txt文件是在更遠的服務器轉移: 它成功運行並得到在同一個數據在遠程服務器上的文件, ,當我在二進制模式下運行如下:

set serveroutput on 
DECLARE 
    l_conn UTL_TCP.connection; 
BEGIN 
    L_CONN := FTP.LOGIN('192.168.x.y', '21', 'username','pass'); 
    ftp.binary(p_conn => l_conn); 
ftp.put(p_conn  => l_conn, 
      P_FROM_DIR => 'MY_DIRECTORY', 
      p_from_file => 'test.txt', 
      p_to_file => 'test_put.txt'); 
    ftp.logout(l_conn); 
END; 
/
anonymous block completed 
220 (vsFTPd 2.0.5) 
331 Please specify the password. 
230 Login successful. 
200 Switching to Binary mode. 
227 Entering Passive Mode (192,168,1,232,35,205) 
150 Ok to send data. 
226 File receive OK. 
221 Goodbye. 

但是,當我在ftp.ascii模式下運行, 它也成功運行過:

200 Switching to ASCII mode. 

但在遠程服務器的最終輸出看起來像

〱⼱ㄯ㈰ㄳ‱㈺〰㨰〠慭ⰰⰰⰰⰰⰴ㤰㈵〶㜬〬丬䅴瑩湧慬â—ä ­å˜±ã€­å˜²ã„¬ä¸¬å」¬å」¬â°¬â°¬â°¬â°¬ãœ¶â¸·ã¤·ãœ¹ãŒ³ãŒ³ãŒ³ãŒ³ãŒ¬ã ®ãœ±ã¤µã€±ã˜¶ã˜¶ã˜¶ã˜¶ã˜Šã€±â¼±ã„¯ãˆ°ã„³â€±ãˆºã€°ã¨°ã˜ 慭ⰰⰰⰰⰰⰴ㤰㈵〶㜬〬丬䅴瑩湧慬â—ä ­å˜±ã€­å˜²ã„¬ä¸¬å」¬å」¬â°¬â°¬â°¬â°¬ãœ¶â¸·ã¤·ãœ¹ãŒ³ãŒ³ãŒ³ãŒ³ãŒ¬ã ®ãœ±ã¤µã€±ã˜¶ã˜¶ã˜¶ã˜¶ã˜Šã€±â¼±ã„¯ãˆ°ã„³â€±ãˆºã€°ã¨±ãˆ 慭ⰰⰰⰰⰰⰴ㤰㈵〶㜬〬丬䅴瑩湧慬â—ä ­å˜±ã€­å˜²ã„¬ä¸¬å」¬å」¬â°¬â°¬â 

我用ftp ASCII模式下測試相同的cmd,並且運行得非常好;

如何以ascii模式傳輸以獲取上面的pl/sql中的遠程服務器中的實際數據? 在此先感謝:)

回答

0

您是否試圖從Linux的FTP文件到Windows盒? 是文本文件,有英文內容嗎? 它看起來像是有一個字符集不匹配。

舊版本的ftp服務器/客戶端僅支持ASCII模式,後來更新爲使用UTF-8。 因此,請嘗試更新ftp客戶端版本。