Oracle Oracle DB에 값 메트로 열이 있습니다. utl_file 패키지를 사용하여 CSV 파일에 기록합니다.이 값에는 특수 문자가 있기 때문에 변환 기능을 사용하여 쓰는 동안 정크 문자를 제거하도록 문자 코딩을 변경했습니다. 따라서 변환 함수는 다음과 같습니다. convert (REC.DT25, 'WE8DEC'). 그러나 문제는 그 가치가 단지 메론 (Méron)으로오고 마지막 문자가 빠져 있다는 것입니다. 나는 그것을 다른 문자 인코딩으로 변경하는 것에서부터 모든 것을 시도했지만 여전히 운이 없다. 도와 주실 수 있겠습니까? 만들거나 문제를 재현 12.2 AL32UTF8 데이터베이스에 다음 스크립트를 실행Oracle에서 특수 문자가 두 번 반복되지 않습니다.
CREATE OR REPLACE PROCEDURE SAMPLE_MERONE AS
CURSOR C1 IS select * from gsal_mosaic_prf_output where CS46SIGFORMALNAME
LIKE 'Lt. Jowens Méroné' AND ID_NUMBER='8-13678728';
MERONE_FILE UTL_FILE.FILE_TYPE;
V_MERONE_FILE VARCHAR2(300);
BEGIN
V_MERONE_FILE := 'MREONE_FILE.csv';
MERONE_FILE := UTL_FILE.FOPEN ('GSAL_PRF',V_MERONE_FILE,'w',32767) ;
IF UTL_FILE.IS_OPEN(MERONE_FILE) THEN
FOR REC IN C1
LOOP
UTL_FILE.PUT_LINE(MERONE_FILE,'"'||REC.ID_NUMBER||'","'||
REC.GROUP_ID||'","'||convert(REC.CS46LASTNAME,'WE8ISO8859P1',
'UTF8')||'","'||
convert(REC.CS46SIGFORMALNAME,'WE8ISO8859P1',
'UTF8')||'"',TRUE);
END LOOP;
UTL_FILE.FCLOSE (MERONE_FILE) ;
END IF;
END SAMPLE_MERONE;
확인이 개 문자는 같은 바이트 값이있는 경우 귀하의 칼럼에. 테이블에서 덤프 (열)를 선택하십시오. 또한 데이터베이스 문자 집합에서 해당 문자를 인코딩 할 올바른 바이트 값이 있어야합니다. – Rene
데이터베이스 문자 집합은 무엇입니까? 'UTL_FILE'을 사용하는 코드를 보여주십시오. –
데이터베이스 문자 집합이 'UTF-8'입니다. –