Oracle到CSV导出-HTML字符实体

时间:2018-07-03 14:37:58

标签: oracle stored-procedures special-characters export-to-csv

我正在Oracle中进行导出过程。在表中,特殊字符如&#201,&#233,&#235等存储。当我导出这些字符时,如何转换为其原始值?

我正在使用UTL_FILE函数导出到csv。程序是

PROCEDURE PROC_FILE_WRITE_TEST(p_dir IN VARCHAR2,p_filename IN VARCHAR2)
IS
  v_fh utl_file.file_type;
  c NUMBER; 
  d NUMBER; 
  v_ret NUMBER;
  col_cnt INTEGER;
  rec_tab DBMS_SQL.DESC_TAB;
BEGIN
  v_fh := utl_file.fopen(p_dir, p_filename, 'W' ,32767 );
  c := DBMS_SQL.OPEN_CURSOR;
  DBMS_SQL.PARSE(c, 'query here', DBMS_SQL.NATIVE);
  DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
  d := DBMS_SQL.EXECUTE(c);
LOOP
  v_ret := DBMS_SQL.FETCH_ROWS(c);
  EXIT WHEN v_ret = 0;
  UTL_FILE.NEW_LINE(v_fh, 1);
  FOR j in 1..col_cnt
  LOOP
    UTL_FILE.PUT(v_fh,v_v_val||'|');
  END LOOP;
END LOOP;
DBMS_SQL.CLOSE_CURSOR(c);
UTL_FILE.FCLOSE(v_fh);
END PROC_FILE_WRITE_TEST;

下面是例子。

表格数据:

Café and bars

CSV:

  

咖啡厅和酒吧

1 个答案:

答案 0 :(得分:2)

由于几乎不提供任何信息,因此很难为您提供帮助。但是,UNESCAPE_REFERENCE可能会为您提供帮助。

select UTL_I18N.UNESCAPE_REFERENCE ( 'Café and bars') as txt 
from dual;

TXT
=====================
Café and bars