我已成功编译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中远程服务器中的实际数据? 在此先感谢:)
答案 0 :(得分:0)
您是否尝试将文件从Linux升级到Windows框? 是文本文件,有英文内容吗? 看起来有一个字符集不匹配。
旧版本的ftp服务器/客户端仅支持ASCII模式,后来更新为使用UTF-8。 所以,请尝试更新ftp客户端版本。