我有这个包。该包生成XML文件并将其导出到各个商店。但是我遇到过这样一种情况,即如果员工姓名具有类似'RïçhàrdBæcôn'的特殊字符,则XML会将其生成为'Richard B?con'。
CREATE OR replace PACKAGE BODY
my_pkg
AS
FUNCTION Get_emp
RETURN T_XFORM_STRING
IS
PRAGMA autonomous_transaction;
emp_data_string T_XFORM_STRING := T_xform_string();
line_counter NUMBER := 1;
v_text VARCHAR2(4000) := NULL;
v_rowcnt NUMBER := 0;
emp_rec EMP_REC_TYPE;
BEGIN
SELECT Count(*)
INTO v_rowcnt
FROM nbty_custom ;
IF ( v_rowcnt > 0 ) THEN
OPEN emp_cur;
FETCH emp_cur bulk collect
INTO emp_rec.emp_id,
emp_rec.emp_name,
emp_rec.emp_city;
CLOSE emp_rec;
FOR i IN 1..emp_rec.emp_id.Count()
LOOP
BEGIN
SELECT
CASE
WHEN emp_rec.Emp_id(i) IN('001',
'002',
'003') THEN ' <Employee> '
||Chr(10)
|| ' <EmployeeID>'
||emp_rec.Emp_id(i)
||'</EmployeeID>'
||Chr(10)
|| ' <EmployeeName>'
||emp_rec.Emp_name(i)
||'</EmployeeName>'
||Chr(10)
|| ' <EmployeeCity>'
||emp_rec.Emp_city(i)
||'</EmployeeCity>'
||Chr(10)
|| ' </Employee> '
||Chr(10)
||
end
into v_text
FROM dual;--emp_data_string.extend;
Emp_data_string(line_counter) :=v_text;
line_counter:=line_counter+1;
END;
END LOOP;
END IF;
RETURN emp_data_string;
END get_emp;
END my_pkg;
我尝试过使用htf.escape_sc()函数。但仍然没有得到相同的格式。我想在XML中显示为'RïçhàrdBæcôn'。
任何人都可以帮忙吗?