Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Error Opening xml file

841964Mar 14 2011 — edited Mar 18 2011
Hi,

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
This post has been answered by odie_63 on Mar 15 2011
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 15 2011
Added on Mar 14 2011
9 comments
354 views