Error Opening xml file
841964Mar 14 2011 — edited Mar 18 2011Hi,
I am struck with one error in opening the xml file. Pls provide me your inputs.
I am using the pl/sql script for outbounding the data in .xml format. But after creating the file successfully I am not able to open it in the explorer. The data having '&' in one of the columns and it will be available in data in many areas. Where as if I try to create it the same with Oracle report by using 'xml' as output, then I am not getting this issue. And I am able to open the same in explorer perfectly.
Here I am pasting the script which I've created
create or replace PROCEDURE GETXML_TAG(ERRBUT OUT VARCHAR2,
RETCODE OUT VARCHAR2,
P_DIR_NAME VARCHAR2)
IS
v_record_data varchar2(4000) := null;
v_order_id varchar2(50) := null;
v_order_date varchar2(50) := null;
v_order_mode varchar2(50) := null;
v_order_total varchar2(50) := null;
v_file_dir varchar2(100):= '/usr/tmp';
CURSOR cur_hdr IS
SELECT DISTINCT MINISTRY_CODE, DEPT_CODE, ''ENTITY_CODE
FROM XGBZ_FIN_STAGE_ACS
WHERE tx_timestamp IS NULL;
CURSOR cur_line(p_min_code IN VARCHAR2,
p_dept_code IN VARCHAR2) IS
SELECT seg_no,
seg_code,
to_char(seg_description) seg_description,
start_date,
end_date,
status,
disable_flag
FROM xgbz_fin_stage_acs
WHERE tx_timestamp IS NULL
AND ministry_code =p_min_code
AND dept_code = p_dept_code;
BEGIN
v_filename := 'GEBIZ_EPO'||TO_CHAR(SYSDATE,'DDMMYYYYHH24MI')||'.xml';
f_xml_file := UTL_FILE.FOPEN(v_file_dir, v_filename, 'W');
v_record_data := '<?xml version="1.0" encoding="UTF-8"?>';
UTL_FILE.put_line(f_XML_FILE, v_RECORD_DATA);
UTL_FILE.put_line(f_XML_FILE, '<GEBIZ_ACCOUNT_SEGMENT>');
dbms_output.put_line('step 1 '||v_file_dir||'-'||v_filename);
FOR cur_hdr_rec IN cur_hdr
LOOP
dbms_output.put_line('step 2 ');
UTL_FILE.put_line(f_XML_FILE, '<HEADER>');
UTL_FILE.put_line(f_XML_FILE,'<MINISTRY_CODE>' || cur_hdr_rec.ministry_code || '</MINISTRY_CODE>');
UTL_FILE.put_line(f_XML_FILE,'<DEPT_CODE>' || cur_hdr_rec.dept_code || '</DEPT_CODE>');
UTL_FILE.put_line(f_XML_FILE,'<ENTITY_CODE>' || cur_hdr_rec.entity_code || '</ENTITY_CODE>');
UTL_FILE.put_line(f_XML_FILE, '</HEADER>');
FOR cur_line_rec IN cur_line(cur_hdr_rec.ministry_code, cur_hdr_rec.dept_code)
LOOP
dbms_output.put_line('step 3 ');
UTL_FILE.put_line(f_XML_FILE, '<DETAILS>');
UTL_FILE.put_line(f_XML_FILE, '<SEGEMENT>');
UTL_FILE.put_line(f_XML_FILE,'<NUMBER>' || cur_line_rec.seg_no|| '</NUMBER>');
UTL_FILE.put_line(f_XML_FILE,'<CODE>' || cur_line_rec.seg_no|| '</CODE>');
UTL_FILE.put_line(f_XML_FILE,'<DESCRIPTION>' || cur_line_rec.seg_description|| '</DESCRIPTION>');
UTL_FILE.put_line(f_XML_FILE,'<START_DATE>' || cur_line_rec.start_date|| '</START_DATE>');
UTL_FILE.put_line(f_XML_FILE,'<END_DATE>' || cur_line_rec.end_date|| '</END_DATE>');
UTL_FILE.put_line(f_XML_FILE,'<STATUS>' || cur_line_rec.status|| '</STATUS>');
UTL_FILE.put_line(f_XML_FILE,'<DELETE_FLAG>' || cur_line_rec.disable_flag|| '</DELETE_FLAG>');
UTL_FILE.put_line(f_XML_FILE, '</SEGEMENT>');
UTL_FILE.put_line(f_XML_FILE, '</DETAILS>');
END LOOP;
END LOOP;
dbms_output.put_line('step 4 ');
UTL_FILE.put_line(f_XML_FILE, '</GEBIZ_ACCOUNT_SEGMENT>');
UTL_FILE.FCLOSE(f_XML_FILE);
EXCEPTION
WHEN UTL_FILE.INVALID_OPERATION THEN
dbms_output.put_line('Invalid Operation For '|| v_filename);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INVALID_PATH THEN
dbms_output.put_line('Invalid Path For '|| v_filename);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INVALID_MODE THEN
dbms_output.put_line('Invalid Mode For '|| v_filename);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
dbms_output.put_line('Invalid File Handle '|| v_filename);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.WRITE_ERROR THEN
dbms_output.put_line('Invalid Write Error '|| v_filename);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.READ_ERROR THEN
dbms_output.put_line('Invalid Read Error '|| v_filename);
UTL_FILE.FCLOSE_ALL;
WHEN UTL_FILE.INTERNAL_ERROR THEN
dbms_output.put_line('Internal Error');
UTL_FILE.FCLOSE_ALL;
WHEN OTHERS THEN
dbms_output.put_line('Other Error '||'SQL CODE: '||SQLCODE||' Messg: '||SQLERRM);
UTL_FILE.FCLOSE_ALL;
END GETXML_TAG;
/
The file I am generating at the server level:
EPO150320111915.xml
<?xml version="1.0" encoding="UTF-8"?>
<GEBIZ_ACCOUNT_SEGMENT>
<HEADER>
<MINISTRY_CODE>RPO</MINISTRY_CODE>
<DEPT_CODE>000</DEPT_CODE>
<ENTITY_CODE></ENTITY_CODE>
</HEADER>
<DETAILS>
<SEGEMENT>
<NUMBER>1</NUMBER>
<CODE>1</CODE>
<DESCRIPTION>Republic Polytechnic</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Operating Grant</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Dev Grant-Renovation to Temp Campus Temp</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Dev Grant-Renovation to Temp Campus Main</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Dev Grant-IT for Temp Campus</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Dev Grant-Land Premium for Woodlands Campus</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Dev Grant-Pre-construction of Woodlands Campus</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Dev Grant-FE</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Tax Exempt-Student Dev Welfare Fund</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>Tax Exempt-Dev Project Fund</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>2</NUMBER>
<CODE>2</CODE>
<DESCRIPTION>For Finance Use ONLY</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Library</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Office of Academic Affairs</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Office of Corporate Communications</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Office of Deputy Principal</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Office of Estates</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Office of Finance</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Office of Human Resource</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
<DETAILS>
<SEGEMENT>
<NUMBER>3</NUMBER>
<CODE>3</CODE>
<DESCRIPTION>Office of Industrial & International Services</DESCRIPTION>
<START_DATE></START_DATE>
<END_DATE></END_DATE>
<STATUS>A</STATUS>
<DELETE_FLAG></DELETE_FLAG>
</SEGEMENT>
</DETAILS>
</GEBIZ_ACCOUNT_SEGMENT>
------ end of file
I am able to edit it correctly in notepad, when tried to open at explorer level its not allowing me because of '&'.
Pls confirm what might be the issue.
Regards
Nagendra