PL / SQL FTP API二进制vs ascii模式

时间:2014-04-01 08:16:30

标签: oracle plsql ftp

我已成功编译package and package body from Oracle-base given by Tim Hall

我的本​​地服务器中有一个.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中远程服务器中的实际数据? 在此先感谢:)

1 个答案:

答案 0 :(得分:0)

您是否尝试将文件从Linux升级到Windows框? 是文本文件,有英文内容吗? 看起来有一个字符集不匹配。

旧版本的ftp服务器/客户端仅支持ASCII模式,后来更新为使用UTF-8。 所以,请尝试更新ftp客户端版本。