我在 Windows 7 上使用 Oracle 11g,其国家字符集等于 AL16UTF16。
我正在尝试使用以下 PL/SQL 代码编写 3 个西里尔字母:
declare
s nvarchar2(3):=nchr(1040) || nchr(1041) || nchr(1042);
fileHandler UTL_FILE.FILE_TYPE;
begin
fileHandler := UTL_FILE.FOPEN_NCHAR('TEMP', 'test.txt', 'W');
UTL_FILE.PUT_NCHAR(fileHandler,s);
UTL_FILE.FCLOSE(fileHandler);
end;
生成的文件长 5 个字节。如果我在 Notepad++ 中打开文件,我可以看到以下内容:DLE DC1 DC2,末尾有新行(字符 13+字符 10)。上面的代码有什么问题?