XML DECLARE F UTL_FILE.FILE_TYPE; MYCLOB CLOB; BEGIN SELECT DBMS_XMLGEN.GETXML('SELECT FIRST_NAME, SALARY FROM EMP WHERE ROWNUM <= 5') INTO MYCLOB FROM DUAL; F := UTL_FILE.FOPEN('NEW','EMP_DEPT.XML','w',32767); UTL_FILE.PUT(F,MYCLOB); UTL_FILE.FCLOSE(F); END; / INSERT INTO TEST_XML (A) VALUES (' Steven 25000 Neena 17000 Lex 17000 Michael 13000 Steven 6000 '); SELECT extract(value(d), '//FIRST_NAME/text()').getStringVal() AS FIRST_NAME, extract(value(d), '//SALARY/text()').getNumberVal() AS SALARY FROM xml_tab x, table(xmlsequence(extract(x.xmlval, '/ROWSET/EMP'))) d; CREATE TABLE T_XML_ORDERS(ORDERS XMLTYPE); CREATE OR REPLACE PROCEDURE SP_BULK_ORDERS ( IN_ORDERS IN CLOB, OUT_ORDER_DETAILS OUT SYS_REFCURSOR ) AS BEGIN INSERT INTO T_XML_ORDERS VALUES (XMLTYPE(IN_ORDERS)); COMMIT; OPEN OUT_ORDER_DETAILS FOR SELECT extract(value(d), '//EXCHANGE/text()').getStringVal() AS EXCHANGE, extract(value(d), '//ORDER_ID/text()').getNumberVal() AS ORDER_ID FROM T_XML_ORDERS x, table(xmlsequence(extract(x.ORDERS, '/ROWSET/ROW'))) d; END; / VARIABLE X REFCURSOR; DECLARE I CLOB := ' Steven 25000 Neena 17000 Dinesh 17000 Alexander 9000 Bruce 6000 '; BEGIN SP_PLACE_ORDERS( IN_ORDERS=>I, OUT_ORDER_DETAILS=>:X ); END; / PRINT X; CREATE TABLE T1(ORDERS XMLTYPE); create or replace procedure sp_place_orders(in_orders in clob, o out sys_refcursor) as x xmltype; begin x := xmltype(in_orders); execute immediate 'truncate table t1'; insert into t1 values (x); open o for SELECT extract(value(d), '//FIRST_NAME/text()').getStringVal() AS FIRST_NAME, extract(value(d), '//SALARY/text()').getNumberVal() AS SALARY FROM t1 x, table(xmlsequence(extract(x.orders, '/ROWSET/ROW'))) d; end; / variable j refcursor; declare i clob := ' Steven 24000 Dinesh 17000 Hari 17000 Alexander 9000 Bruce 6000 '; begin sp_place_orders(in_orders=>i,o=>:j); end; / print j; select c.owner, c.object_name, c.object_type, b.sid, b.serial#, b.status, b.osuser, b.machine from v$locked_object a , v$session b, dba_objects c where b.sid = a.session_id and a.object_id = c.object_id; ALTER SYSTEM KILL SESSION '30,666' IMMEDIATE; LOCK TABLE EMPLOYEES IN SHARE MODE NOWAIT;