ORA-21560: argument is null, invalid, or out of range
Hi All.
I am getting the error followed by the code below. I am trying to generate the XML file using DBMS_XMLDOM Package.
*********************************************************
DECLARE
v_DOMDoc DBMS_XMLDOM.DOMDocument;
v_MainNode DBMS_XMLDOM.DOMNode;
v_RootElem DBMS_XMLDOM.DOMElement;
v_RootNode DBMS_XMLDOM.DOMNode;
counter INTEGER;
total_size INTEGER;
v_id table.ID%TYPE;
v_temp_id table.TEMP_ID%TYPE;
v_created_by table.CREATED_BY%TYPE;
CURSOR class_cur IS
SELECT ID,TEMP_ID,CREATED_BY
FROM table WHERE column like 'Post%';
BEGIN
counter := 0;
SELECT COUNT(1) INTO total_size FROM table WHERE custom2 like 'Post%';
v_DOMDoc := DBMS_XMLDOM.newDOMDocument();
v_MainNode := DBMS_XMLDOM.makeNode(v_DOMDoc);
v_RootElem := DBMS_XMLDOM.createElement(v_DOMDoc, 'classes');
v_RootNode := DBMS_XMLDOM.appendChild(v_MainNode, DBMS_XMLDOM.makeNode(v_RootElem) );
OPEN class_cur;
LOOP
FETCH class_cur INTO v_id, v_offerng_temp_id, v_created_by;
counter := counter + 1;
v_CustElem := DBMS_XMLDOM.createElement(v_DOMDoc, 'class');
v_CustNode := DBMS_XMLDOM.appendChild(v_RootNode, DBMS_XMLDOM.makeNode(v_CustElem));
DBMS_XMLDOM.setAttribute(v_CustElem, 'xid', v_id);
DBMS_XMLDOM.setAttribute(v_CustElem, 'sd', v_temp_id);
DBMS_XMLDOM.setAttribute(v_CustElem, 'xloc', v_created_by);
DBMS_XMLDOM.writeToFile(v_DOMDoc, '/xxx/yyy/zzz/test.xml');
IF counter = total_size THEN
EXIT;
END IF;
END LOOP;
CLOSE C1;
END;
/
*********************************************************
ORA-21560: argument is null, invalid, or out of range
ORA-06512: at "SYS.DBMS_LOB", line 715
ORA-06512: at "XDB.DBMS_XSLPROCESSOR", line 64
ORA-06512: at "XDB.DBMS_XMLDOM", line 4306
ORA-06512: at line 35
Is there any alternative to writetofile() method (to get the data from DBMS_XMLDOM.DomDocument object to a file)? I think it is limited to 32KB.
Please assist.
Thanks in advance,
Vikram