我試圖從外部.csv插入捷克字符到我的數據庫。Oracle:從外部源插入捷克字符
如果我直接在工作表中打印單詞「Sedláček」的unicode,則獲得「Sedl \ 00E1 \ 010Dek」。但是,如果我打印從.csv導入的相同單詞,我有「Sedl \ 00C3 \ 00A1 \ 00C4 \ 008Dek」,它在我的數據庫「SedlÃÄÄek」中給出。
這是爲什麼不同?我如何從.csv獲得正確的詞彙?
這是我的導入代碼:
set serveroutput on;
CREATE OR REPLACE DIRECTORY MYREP as '/foo';
DECLARE
f utl_file.file_type;
v_line NVARCHAR2(1000);
BEGIN
f := utl_file.fopen ('MYREP', 'toto.csv', 'R');
IF utl_file.is_open(f) THEN
LOOP
utl_file.get_line(f, v_line, 1000);
dbms_output.put_line(ASCIISTR(v_line));
END LOOP;
END IF;
utl_file.fclose(f);
END;
,在我的工作表:
set serveroutput on
BEGIN
dbms_output.put_line(ASCIISTR('Sedláček'));
END;
您的關注非常感謝!
什麼是您的數據庫字符和國家字符集?如果你正在讀入'nvachar2'變量,是否有這個原因,並且對於你*不使用'fopen_nchar()'和'get_line_nchar()'變種? –
我不知道fopen_nchar()和get_line_nchar()存在!現在,它的工作,我感到很愚蠢= D很多,很多,非常感謝! – Holyheart