UTL_FILE sqlplus sys/admin as sysdba SQL> CREATE DIRECTORY new AS 'D:\NEW'; Directory created. SQL> GRANT READ,WRITE on DIRECTORY NEW to HR; Grant succeeded. SQL> GRANT EXECUTE ON UTL_FILE TO HR; Grant succeeded. sqlplus hr/admin Declare F UTL_FILE.FILE_TYPE; i varchar(100); Begin F := UTL_FILE.FOPEN('NEW','EMP1.txt','w', 32767); for X in (select first_name, salary from employees where rownum <= 10) loop i := X.first_name||' '||X.salary; utl_file.put_line(F, i); UTL_FILE.NEW_LINE(F); end loop; UTL_FILE.FCLOSE ( F ) ; End ; / 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; / Cursor is a SQL private work area. It opens an area of memory where the query is parsed and executed. Cursor types Implicit Cursor Explicit Cursor Cursor Attributes found notfound isopen rowcount EXCEPTION error handling. action to be performed when error occured. Types Pre defined exception User defined exception Non Pre defined exception raise_application_error SQLCODE SQLERRM dbms_utility.format_Error_backtrace() dbms_utility.format_Error_stack()