01. For Create a Mapp Network Drive:
Command :
net use drive_letter: \\domain_name\share_folder /user:domain_user_name password
Example :
net use x: \\10.11.201.105\xml /user:hasan 123
02. For Delete A Mapp Network Drive:
Command : net use drive_letter: /delete
Example : net use x: /delete
For Details Net Use Command : Click Here
All DOS Command : Click Here
Dos Command Link in PDF : Click Here
I am Mr. Tamzidul Amin(Sampad).Live in Dhaka.I am a PLSQL programmer. I like to engage critical issues regarding PLSQL. Any body can communicate with me about any kinds of PLSQL problem.My Educations are B.Sc(Hon's),M.Sc(Mathematics),MBA(Finance), Oracle Certified Professional(OCP) E-mail : tamzidulamin@gmail.com
Tuesday, November 24, 2009
Monday, November 23, 2009
AutoFTP is an automated ftp client software for transferring files over the Internet.
AutoFTP is an automated ftp client software for transferring files over the Internet.
Benefits, Features
- Auto-Transfers: You can schedule auto-recurring transfers for any future date/time;
- Transfer Sets: You can select any number of files from any FTP site or your local computer, from different directories, to download or upload. You can schedule the upload/download for any future date/time.
- Flexible Templates: Results of time consuming tasks or repetitive processes can be saved into templates. You can save the following settings to templates: transfer sets (files for download or upload from any FTP site or Local computer), transfer sessions.
- AutoFTP can automatically dial, connect to the Internet, upload and/or download files and finally disconnect;
- You can specify in the Preferences that auto-transfers should be aborted if the connection is too slow (auto-transfer will be rescheduled automatically); This can save you connect time and money;
- AutoFTP uses a Windows File Explorer-like user interface with popup menus and drag-and-drop support so you will feel at home;
- AutoFTP can remain invisible while transferring files so it will not disturb your other work;
- AutoFTP Assistant will guide you through the process of uploading, downloading and scheduling auto-transfers;
Requirements
PC 286 CPU or better; 2 MB RAM; Color monitor; Windows 95, 98, Me, NT; Requires only 400 Kbytes of disk space.
Click Here to Download Auto Ftp.
Sunday, November 22, 2009
Create an FTP Folder with Read Access but Not List Access
Create the FTP Folder
01. Create a folder that you want the FTP service to point to.
02. Right-click the folder, click Properties, and then click the Security tab. Grant Full Control permissions to only the Administrators group.
[NOTE: Remove the Everyone group if it is present.]
03. Click Advanced, and then click Add to add a new rule.
04. In the account selection list, double-click the Anonymous User account or the group that is used for FTP access.
05. In the Apply Onto drop-down list, select Files Only.
06. Click to select Allow for the following permissions:
Ø List Folder/Read Data
Ø Read Attributes
Ø Read Extended Attributes
Ø Read Permissions
07. Click OK.
08. Click Add to add another rule.
09. Select the account that you selected in step 4.
10. In the Apply Onto list, click to select This Folder only.
11. Click to select Allow for the following permissions
(note that List permissions are not listed):
Ø Create Files/Write Data
Ø Create Folders/Append Data
Ø Write Attributes
Ø Write Extended Attributes
Ø Read Permissions
12. Click OK until you have closed all of the property windows.
Note If you apply these permissions to an existing folder or to existing files, you click to select the Reset permissions on all child objects and enable propagation of inheritable permissions check box before you click OK.
Wednesday, November 4, 2009
Bangla Font Configuration With Oracle
First Collect SolaimanLipi.ttf (Click here for download) Font from a Reliable Sourse.Install this font and follow below steps:
*** It will be better if u use Developer10g Rel-2 ( Version 10.1.2.0.2 - 32 Bit )
*** During database installation must be change Product Language by AL32UTF8
[Remember that, u must have configure JRE in Webutil Configuration
For JRE, must be incldue the followinng code into Formsweb.cfg file
(Path: DevHome\forms\server\)
###########################################################################
# Page displayed to users to allow them to download Sun's Java Plugin.
# Sun's Java Plugin is typically used for non-Windows clients.
# (NOTE: you should check this page and possibly change the settings)
jpi_download_page=/forms/java/jre-6u17-windows-i586-S.exe
# Parameter related to the version of the Java Plugin
jpi_classid=clsid:CAFEEFAC-0016-0017-FFFF-ABCDEFFEDCBA
# Parameter related to the version of the Java Plugin
jpi_codebase=/forms/java/jre-6u17-windows-i586-S.exe
# Parameter related to the version of the Java Plugin
jpi_mimetype=application/x-java-applet;jpi-version=1.6.0_17
# EM config parameter
# Set this to "1" to enable Enterprise Manager to track Forms processes
em_mode=0
#######################################################################
In the Key Configuration of formsweb.cfg file
replace baseHTMLjinitiator=webutiljini.htm by baseHTMLJInitiator=webutiljpi.htm
archive=frmall.jar
webUtilArchive=frmwebutil.jar,jacob.jar
baseHTMLJInitiator=webutiljpi.htm
#######################################################################
For Download JRE(jre-6u17-windows-i586-s.exe) Click Here
Classid : CAFEEFAC-0016-0017-FFFF-ABCDEFFEDCBA ]
1. Start>>Run>>regedit>>Database Home>> Edit NLS_LANG file by double click
Replace AMERICAN_AMERICA.WE8MSWIN1252 by AMERICAN_AMERICA.UTF8
2. Start>>Run>>regedit>>DeveloperSuit Home>> Edit NLS_LANG file by docuble click
Replace AMERICAN_AMERICA.WE8MSWIN1252 by AMERICAN_AMERICA.UTF8
3. For showing in report go to the path
..\...\DevSuiteHome\tools\common\uifont.ali
Write "SolaimanLipi" = "SolaimanLipi.ttf"
between [ PDF:Embed ] and [ PDF Subset ]
4. Developmnent machine and for app
..\...\DevSuiteHome\forms\java\oracle\forms\registry.dat
Go to default.fontMap.appFontnames line and append SolaimanLipi font name by the following.
default.fontMap.appFontnames=SolaimanLipi,.....
If you want to show default font with SolaimanLipi.(Not Mandatory) then
Find the lines default.fontMap.defaultFontname=Dialog
and replace by default.fontMap.defaultFontname=SolaimanLipi
5. Shutdown OC4J Instance once then again Start OC4J Instance.
[N.B: 01. Use Avro Keyboard (version: avrokeyboard_4.1.0) and Install SolaimanLipi font into your operating system's FONTS folder.
02. Go Start Menu >> Settings >> Control Panel >> Regional & Language Options >>
Then Select Languages Tab and Check Install files for complex script & right-to-left languages(Including Thai)
>> Ok(You have need Operating Systems CD & your system must be restart.)]
Download Avro Keyboard From The Following Link:
http://www.omicronlab.com/news/avro-keyboard-4.1.0-released.html
*** It will be better if u use Developer10g Rel-2 ( Version 10.1.2.0.2 - 32 Bit )
*** During database installation must be change Product Language by AL32UTF8
[Remember that, u must have configure JRE in Webutil Configuration
For JRE, must be incldue the followinng code into Formsweb.cfg file
(Path: DevHome\forms\server\)
###########################################################################
# Page displayed to users to allow them to download Sun's Java Plugin.
# Sun's Java Plugin is typically used for non-Windows clients.
# (NOTE: you should check this page and possibly change the settings)
jpi_download_page=/forms/java/jre-6u17-windows-i586-S.exe
# Parameter related to the version of the Java Plugin
jpi_classid=clsid:CAFEEFAC-0016-0017-FFFF-ABCDEFFEDCBA
# Parameter related to the version of the Java Plugin
jpi_codebase=/forms/java/jre-6u17-windows-i586-S.exe
# Parameter related to the version of the Java Plugin
jpi_mimetype=application/x-java-applet;jpi-version=1.6.0_17
# EM config parameter
# Set this to "1" to enable Enterprise Manager to track Forms processes
em_mode=0
#######################################################################
In the Key Configuration of formsweb.cfg file
replace baseHTMLjinitiator=webutiljini.htm by baseHTMLJInitiator=webutiljpi.htm
archive=frmall.jar
webUtilArchive=frmwebutil.jar,jacob.jar
baseHTMLJInitiator=webutiljpi.htm
#######################################################################
For Download JRE(jre-6u17-windows-i586-s.exe) Click Here
Classid : CAFEEFAC-0016-0017-FFFF-ABCDEFFEDCBA ]
1. Start>>Run>>regedit>>Database Home>> Edit NLS_LANG file by double click
Replace AMERICAN_AMERICA.WE8MSWIN1252 by AMERICAN_AMERICA.UTF8
2. Start>>Run>>regedit>>DeveloperSuit Home>> Edit NLS_LANG file by docuble click
Replace AMERICAN_AMERICA.WE8MSWIN1252 by AMERICAN_AMERICA.UTF8
3. For showing in report go to the path
..\...\DevSuiteHome\tools\common\uifont.ali
Write "SolaimanLipi" = "SolaimanLipi.ttf"
between [ PDF:Embed ] and [ PDF Subset ]
4. Developmnent machine and for app
..\...\DevSuiteHome\forms\java\oracle\forms\registry.dat
Go to default.fontMap.appFontnames line and append SolaimanLipi font name by the following.
default.fontMap.appFontnames=SolaimanLipi,.....
If you want to show default font with SolaimanLipi.(Not Mandatory) then
Find the lines default.fontMap.defaultFontname=Dialog
and replace by default.fontMap.defaultFontname=SolaimanLipi
5. Shutdown OC4J Instance once then again Start OC4J Instance.
[N.B: 01. Use Avro Keyboard (version: avrokeyboard_4.1.0) and Install SolaimanLipi font into your operating system's FONTS folder.
02. Go Start Menu >> Settings >> Control Panel >> Regional & Language Options >>
Then Select Languages Tab and Check Install files for complex script & right-to-left languages(Including Thai)
>> Ok(You have need Operating Systems CD & your system must be restart.)]
Download Avro Keyboard From The Following Link:
http://www.omicronlab.com/news/avro-keyboard-4.1.0-released.html
Monday, October 26, 2009
Restrict or Protect Oracle Forms Developer from SQL Injection.
For Developer6i:
FORMS60_RESTRICT_ENTER_QUERY=true/false
For Developer9i/10g:
Open Default.env file from the foollowing path
\forms90\server\default.env
and write FORMS90_RESTRICT_ENTER_QUERY=true/false
Must restart from service/oc4j.
FORMS60_RESTRICT_ENTER_QUERY=true/false
For Developer9i/10g:
Open Default.env file from the foollowing path
\forms90\server\default.env
and write FORMS90_RESTRICT_ENTER_QUERY=true/false
Must restart from service/oc4j.
Wednesday, October 21, 2009
Data Convert From a FILE to CLOB
CREATE OR REPLACE Procedure Dpr_fileToClob(Fname in VARCHAR2, Fdir in VARCHAR2, Outclob out CLOB)
IS
fclob CLOB;
theBFile BFILE;
num NUMBER :=0;
src_offset NUMBER :=1;
dest_offset NUMBER :=1;
lang_context NUMBER :=1;
BEGIN
dbms_lob.createtemporary(fclob,FALSE,DBMS_LOB.SESSION);
theBFile := BFileName(Fdir,Fname);
dbms_lob.fileOpen(theBFile);
dbms_lob.loadClobFromFile(dest_lob =>fclob,
src_bfile =>theBFile,
amount =>dbms_lob.getLength(theBFile),
dest_offset =>dest_offset,
src_offset =>src_offset,
bfile_csid =>0,
lang_context =>lang_context,
warning =>num
);
dbms_lob.fileClose(theBFile);
Outclob := fclob;
end;
/
IS
fclob CLOB;
theBFile BFILE;
num NUMBER :=0;
src_offset NUMBER :=1;
dest_offset NUMBER :=1;
lang_context NUMBER :=1;
BEGIN
dbms_lob.createtemporary(fclob,FALSE,DBMS_LOB.SESSION);
theBFile := BFileName(Fdir,Fname);
dbms_lob.fileOpen(theBFile);
dbms_lob.loadClobFromFile(dest_lob =>fclob,
src_bfile =>theBFile,
amount =>dbms_lob.getLength(theBFile),
dest_offset =>dest_offset,
src_offset =>src_offset,
bfile_csid =>0,
lang_context =>lang_context,
warning =>num
);
dbms_lob.fileClose(theBFile);
Outclob := fclob;
end;
/
Data Convert From a FILE to BLOB
CREATE OR REPLACE Procedure Dpr_fileToBlob(Fname in VARCHAR2, Fdir in VARCHAR2, OutBlob out BLOB)
IS
fblob BLOB;
theBFile BFILE;
Bsrc_offset NUMBER :=1;
Bdest_offset NUMBER :=1;
BEGIN
dbms_lob.createtemporary(fblob,FALSE,DBMS_LOB.SESSION);
theBFile := BFileName(Fdir,Fname);
dbms_lob.fileOpen(theBFile);
dbms_lob.loadblobfromfile(dest_lob => fblob ,
src_bfile => theBFile ,
amount => dbms_lob.getLength(theBFile),
dest_offset => Bdest_offset,
src_offset => Bsrc_offset
);
dbms_lob.fileClose(theBFile);
OutBlob := fblob;
End;
/
IS
fblob BLOB;
theBFile BFILE;
Bsrc_offset NUMBER :=1;
Bdest_offset NUMBER :=1;
BEGIN
dbms_lob.createtemporary(fblob,FALSE,DBMS_LOB.SESSION);
theBFile := BFileName(Fdir,Fname);
dbms_lob.fileOpen(theBFile);
dbms_lob.loadblobfromfile(dest_lob => fblob ,
src_bfile => theBFile ,
amount => dbms_lob.getLength(theBFile),
dest_offset => Bdest_offset,
src_offset => Bsrc_offset
);
dbms_lob.fileClose(theBFile);
OutBlob := fblob;
End;
/
Data Convert From CLOB to BLOB
CREATE OR REPLACE Function Fnc_Clob_to_Blob (P_clob_in in clob)
Return blob
is
v_blob blob;
v_offset integer;
v_buffer_varchar varchar2(32000);
v_buffer_raw raw(32000);
v_buffer_size binary_integer := 32000;
Begin
--
If p_clob_in is null Then
return null;
End If;
--
DBMS_LOB.CREATETEMPORARY(v_blob, TRUE);
v_offset := 1;
FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(p_clob_in) / v_buffer_size)
Loop
dbms_lob.read(p_clob_in, v_buffer_size, v_offset, v_buffer_varchar);
v_buffer_raw := utl_raw.cast_to_raw(v_buffer_varchar);
dbms_lob.writeappend(v_blob, utl_raw.length(v_buffer_raw), v_buffer_raw);
v_offset := v_offset + v_buffer_size;
End Loop;
Return v_blob;
End Fnc_Clob_to_Blob;
/
Return blob
is
v_blob blob;
v_offset integer;
v_buffer_varchar varchar2(32000);
v_buffer_raw raw(32000);
v_buffer_size binary_integer := 32000;
Begin
--
If p_clob_in is null Then
return null;
End If;
--
DBMS_LOB.CREATETEMPORARY(v_blob, TRUE);
v_offset := 1;
FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(p_clob_in) / v_buffer_size)
Loop
dbms_lob.read(p_clob_in, v_buffer_size, v_offset, v_buffer_varchar);
v_buffer_raw := utl_raw.cast_to_raw(v_buffer_varchar);
dbms_lob.writeappend(v_blob, utl_raw.length(v_buffer_raw), v_buffer_raw);
v_offset := v_offset + v_buffer_size;
End Loop;
Return v_blob;
End Fnc_Clob_to_Blob;
/
Monday, October 19, 2009
Clear or Delete Htree Data form Htree View
PROCEDURE Prc_Clear_Htree_Data(P_Tree_item varchar2,
P_Search_String varchar2)
IS
/*
* P_Tree_item - Htree Item.
* P_Search_String - Tree Node Label that which you want to Delete/Clear.
* give the exact node label (Character must be same).
*
* This Procedure will clear or delete Tree View from your given
* search_string & child node.
*/
Htree Item;
DeleteNode FTREE.NODE;
ItemName Varchar2(30) :=p_Tree_item;
vSearchString Varchar2(200):=p_Search_String;
BEGIN
Htree := FIND_ITEM(ItemName);
DeleteNode := FTREE.FIND_TREE_NODE(htree,vSearchString,FTREE.FIND_NEXT ,
FTREE.NODE_LABEL,
FTREE.ROOT_NODE ,
FTREE.ROOT_NODE
);
IF NOT FTREE.ID_NULL(DeleteNode)
THEN FTREE.DELETE_TREE_NODE(Htree, DeleteNode);
END IF;
END;
P_Search_String varchar2)
IS
/*
* P_Tree_item - Htree Item.
* P_Search_String - Tree Node Label that which you want to Delete/Clear.
* give the exact node label (Character must be same).
*
* This Procedure will clear or delete Tree View from your given
* search_string & child node.
*/
Htree Item;
DeleteNode FTREE.NODE;
ItemName Varchar2(30) :=p_Tree_item;
vSearchString Varchar2(200):=p_Search_String;
BEGIN
Htree := FIND_ITEM(ItemName);
DeleteNode := FTREE.FIND_TREE_NODE(htree,vSearchString,FTREE.FIND_NEXT ,
FTREE.NODE_LABEL,
FTREE.ROOT_NODE ,
FTREE.ROOT_NODE
);
IF NOT FTREE.ID_NULL(DeleteNode)
THEN FTREE.DELETE_TREE_NODE(Htree, DeleteNode);
END IF;
END;
Wednesday, September 30, 2009
Read XML data from a CLOB file which is already stored into Database
CREATE TABLE XML_LOAD_IN
(
FILE_ID VARCHAR2(13 BYTE),
FILE_NAME VARCHAR2(200 BYTE),
XML_CFILE CLOB,
);
ALTER TABLE XML_LOAD_IN ADD (PRIMARY KEY (FILE_ID));
--==========================================================================
CREATE TABLE BCR
(
"ItemsWithinBundleCount" NUMBER(4) NOT NULL,
"BundleTotalAmount" NUMBER(12) NOT NULL,
"MICRValidTotalAmount" NUMBER(12),
"ImagesWithinBundleCount" NUMBER(5),
"UserField" VARCHAR2(5 BYTE)
);
--==========================================================================
/*** We assume that a XML file is Stored into your table ***/
CREATE OR REPLACE procedure Dpr_Read_Xml_Data(p_file_id in varchar2)
is
l_clob CLOB;
l_parser dbms_xmlparser.Parser;
l_doc dbms_xmldom.DOMDocument;
l_nl dbms_xmldom.DOMNodeList;
l_n dbms_xmldom.DOMNode;
TYPE tab_type IS TABLE OF BCR%ROWTYPE;
t_tab tab_type := tab_type();
BEGIN
Begin
select xml_cfile
into l_clob
from xml_load_in
where file_id = p_file_id;
Exception
When no_data_found then
raise_application_error(-2001,'XML File Not Found.');
When others then null;
End;
l_parser := dbms_xmlparser.newParser;
dbms_xmlparser.parseClob(l_parser, l_clob);
l_doc := dbms_xmlparser.getDocument(l_parser);
dbms_xmlparser.freeParser(l_parser);
l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'/OCE/CashLetter/Bundle/BundleControl');
/* Edit above xml node as your required */
FOR CUR_BCR IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
l_n := dbms_xmldom.item(l_nl, CUR_BCR);
t_tab.extend;
-- Use XPATH syntax to assign values to he elements of the collection.
dbms_xslprocessor.valueOf(l_n,'ItemsWithinBundleCount/text()' ,t_tab(t_tab.last)."ItemsWithinBundleCount" );
dbms_xslprocessor.valueOf(l_n,'BundleTotalAmount/text()' ,t_tab(t_tab.last)."BundleTotalAmount" );
dbms_xslprocessor.valueOf(l_n,'MICRValidTotalAmount/text()' ,t_tab(t_tab.last)."MICRValidTotalAmount" );
dbms_xslprocessor.valueOf(l_n,'ImagesWithinBundleCount/text()' ,t_tab(t_tab.last)."ImagesWithinBundleCount" );
dbms_xslprocessor.valueOf(l_n,'UserField/text()' ,t_tab(t_tab.last)."UserField" );
END LOOP;
FOR CUR_BCR IN t_tab.first .. t_tab.last LOOP
INSERT INTO BCR
("ItemsWithinBundleCount" ,
"BundleTotalAmount" ,
"MICRValidTotalAmount" ,
"ImagesWithinBundleCount" ,
"UserField"
)
VALUES
(t_tab(CUR_BCR)."ItemsWithinBundleCount" ,
t_tab(CUR_BCR)."BundleTotalAmount" ,
t_tab(CUR_BCR)."MICRValidTotalAmount" ,
t_tab(CUR_BCR)."ImagesWithinBundleCount" ,
t_tab(CUR_BCR)."UserField"
);
END LOOP;
COMMIT;
dbms_xmldom.freeDocument(l_doc);
EXCEPTION
WHEN OTHERS THEN
dbms_xmlparser.freeParser(l_parser);
dbms_xmldom.freeDocument(l_doc);
END;
/
(
FILE_ID VARCHAR2(13 BYTE),
FILE_NAME VARCHAR2(200 BYTE),
XML_CFILE CLOB,
);
ALTER TABLE XML_LOAD_IN ADD (PRIMARY KEY (FILE_ID));
--==========================================================================
CREATE TABLE BCR
(
"ItemsWithinBundleCount" NUMBER(4) NOT NULL,
"BundleTotalAmount" NUMBER(12) NOT NULL,
"MICRValidTotalAmount" NUMBER(12),
"ImagesWithinBundleCount" NUMBER(5),
"UserField" VARCHAR2(5 BYTE)
);
--==========================================================================
/*** We assume that a XML file is Stored into your table ***/
CREATE OR REPLACE procedure Dpr_Read_Xml_Data(p_file_id in varchar2)
is
l_clob CLOB;
l_parser dbms_xmlparser.Parser;
l_doc dbms_xmldom.DOMDocument;
l_nl dbms_xmldom.DOMNodeList;
l_n dbms_xmldom.DOMNode;
TYPE tab_type IS TABLE OF BCR%ROWTYPE;
t_tab tab_type := tab_type();
BEGIN
Begin
select xml_cfile
into l_clob
from xml_load_in
where file_id = p_file_id;
Exception
When no_data_found then
raise_application_error(-2001,'XML File Not Found.');
When others then null;
End;
l_parser := dbms_xmlparser.newParser;
dbms_xmlparser.parseClob(l_parser, l_clob);
l_doc := dbms_xmlparser.getDocument(l_parser);
dbms_xmlparser.freeParser(l_parser);
l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'/OCE/CashLetter/Bundle/BundleControl');
/* Edit above xml node as your required */
FOR CUR_BCR IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
l_n := dbms_xmldom.item(l_nl, CUR_BCR);
t_tab.extend;
-- Use XPATH syntax to assign values to he elements of the collection.
dbms_xslprocessor.valueOf(l_n,'ItemsWithinBundleCount/text()' ,t_tab(t_tab.last)."ItemsWithinBundleCount" );
dbms_xslprocessor.valueOf(l_n,'BundleTotalAmount/text()' ,t_tab(t_tab.last)."BundleTotalAmount" );
dbms_xslprocessor.valueOf(l_n,'MICRValidTotalAmount/text()' ,t_tab(t_tab.last)."MICRValidTotalAmount" );
dbms_xslprocessor.valueOf(l_n,'ImagesWithinBundleCount/text()' ,t_tab(t_tab.last)."ImagesWithinBundleCount" );
dbms_xslprocessor.valueOf(l_n,'UserField/text()' ,t_tab(t_tab.last)."UserField" );
END LOOP;
FOR CUR_BCR IN t_tab.first .. t_tab.last LOOP
INSERT INTO BCR
("ItemsWithinBundleCount" ,
"BundleTotalAmount" ,
"MICRValidTotalAmount" ,
"ImagesWithinBundleCount" ,
"UserField"
)
VALUES
(t_tab(CUR_BCR)."ItemsWithinBundleCount" ,
t_tab(CUR_BCR)."BundleTotalAmount" ,
t_tab(CUR_BCR)."MICRValidTotalAmount" ,
t_tab(CUR_BCR)."ImagesWithinBundleCount" ,
t_tab(CUR_BCR)."UserField"
);
END LOOP;
COMMIT;
dbms_xmldom.freeDocument(l_doc);
EXCEPTION
WHEN OTHERS THEN
dbms_xmlparser.freeParser(l_parser);
dbms_xmldom.freeDocument(l_doc);
END;
/