<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FSystem_Packages%2FUTL_FILE</id>
		<title>Oracle PL/SQL/System Packages/UTL FILE - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FSystem_Packages%2FUTL_FILE"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/UTL_FILE&amp;action=history"/>
		<updated>2026-07-15T13:17:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/UTL_FILE&amp;diff=1290&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/UTL_FILE&amp;diff=1290&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/UTL_FILE&amp;diff=1291&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/UTL_FILE&amp;diff=1291&amp;oldid=prev"/>
				<updated>2010-05-26T09:55:25Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Catch different UTL_FILE related errors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
SET ECHO ON&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
     emp_data UTL_FILE.FILE_TYPE;&lt;br /&gt;
BEGIN&lt;br /&gt;
    emp_data := UTL_FILE.FOPEN (&amp;quot;c:\a&amp;quot;,&amp;quot;empdata.csv&amp;quot;,&amp;quot;W&amp;quot;);&lt;br /&gt;
    UTL_FILE.FCLOSE (emp_data);&lt;br /&gt;
EXCEPTION&lt;br /&gt;
    WHEN UTL_FILE.internal_error THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An internal error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_filehandle THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: The file handle was invalid.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_mode THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An invalid open mode was given.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_operation THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An invalid operation was attempted.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_path THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An invalid path was give for the file.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.read_error THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: A read error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.write_error THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: A write error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN others THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;Some other error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Load the data into table myTable. You may use any valid number for column c1&amp;quot;s data.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table myTable(&lt;br /&gt;
  2     c1 number primary key,&lt;br /&gt;
  3     c2 blob&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_raw           RAW(32767);&lt;br /&gt;
  3    v_file_id       UTL_FILE.FILE_TYPE;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5      v_file_id:=&lt;br /&gt;
  6      UTL_FILE.FOPEN(&amp;quot;c:\&amp;quot;,&amp;quot;blob.jpg&amp;quot;,&amp;quot;r&amp;quot;,32767);&lt;br /&gt;
  7      UTL_FILE.GET_RAW (v_file_id,v_raw);&lt;br /&gt;
  8      INSERT INTO myTable VALUES (1,v_raw);&lt;br /&gt;
  9      UTL_FILE.FCLOSE( v_file_id);&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Save data in a cursor to a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
                  ENAME VARCHAR2(10),&lt;br /&gt;
                  JOB VARCHAR2(9),&lt;br /&gt;
                  MGR NUMBER(4),&lt;br /&gt;
                  HIREDATE DATE,&lt;br /&gt;
                  SAL NUMBER(7, 2),&lt;br /&gt;
                  COMM NUMBER(7, 2),&lt;br /&gt;
                  DEPTNO NUMBER(2));&lt;br /&gt;
INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
&lt;br /&gt;
SET ECHO ON&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
     emp_data UTL_FILE.FILE_TYPE;&lt;br /&gt;
BEGIN&lt;br /&gt;
    emp_data := UTL_FILE.FOPEN (&amp;quot;c:\a&amp;quot;,&amp;quot;empdata.csv&amp;quot;,&amp;quot;W&amp;quot;);&lt;br /&gt;
    FOR emp IN (SELECT ename FROM emp) LOOP&lt;br /&gt;
        UTL_FILE.PUT_LINE (emp_data, emp.ename;&lt;br /&gt;
    END LOOP;&lt;br /&gt;
    UTL_FILE.FCLOSE (emp_data);&lt;br /&gt;
EXCEPTION&lt;br /&gt;
    WHEN UTL_FILE.internal_error THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An internal error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_filehandle THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: The file handle was invalid.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_mode THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An invalid open mode was given.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_operation THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An invalid operation was attempted.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.invalid_path THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: An invalid path was give for the file.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.read_error THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: A read error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN UTL_FILE.write_error THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;UTL_FILE: A write error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
    WHEN others THEN&lt;br /&gt;
        DBMS_OUTPUT.PUT_LINE (&amp;quot;Some other error occurred.&amp;quot;);&lt;br /&gt;
        UTL_FILE.FCLOSE_ALL;&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
drop table emp;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use UTL_FILE.FCLOSE to close a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
DECLARE&lt;br /&gt;
  v_FileHandle UTL_FILE.FILE_TYPE;&lt;br /&gt;
BEGIN&lt;br /&gt;
  v_FileHandle := UTL_FILE.FOPEN(&amp;quot;/tmp/&amp;quot;, &amp;quot;utl_file.txt&amp;quot;, &amp;quot;w&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  UTL_FILE.PUT_LINE(v_FileHandle, &amp;quot;This is line 1!&amp;quot;);&lt;br /&gt;
  FOR v_Counter IN 2..11 LOOP&lt;br /&gt;
    UTL_FILE.PUTF(v_FileHandle, &amp;quot;This is line %s!\n&amp;quot;, v_Counter);&lt;br /&gt;
  END LOOP;&lt;br /&gt;
  &lt;br /&gt;
  UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use utl_file.fopen to open a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2    l_file_handle utl_file.file_type;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4    l_file_handle := utl_file.fopen( &amp;quot;/tmp&amp;quot;, &amp;quot;tom.data&amp;quot;, &amp;quot;w&amp;quot; );&lt;br /&gt;
  5  end;&lt;br /&gt;
  6  /&lt;br /&gt;
SQL&amp;gt; --&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use UTL_FILE.PUT_LINE to write a line of text to a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
CREATE OR REPLACE PROCEDURE SHAREFLE IS&lt;br /&gt;
  v_MyFileHandle UTL_FILE.FILE_TYPE;&lt;br /&gt;
  BEGIN&lt;br /&gt;
       v_MyFileHandle := UTL_FILE.FOPEN(&amp;quot;C:\&amp;quot;,&amp;quot;HELLO.TXT&amp;quot;,&amp;quot;a&amp;quot;);&lt;br /&gt;
       UTL_FILE.PUT_LINE(v_MyFileHandle, &amp;quot;Hello Again for the Second Time! &amp;quot; || TO_CHAR(SYSDATE,&amp;quot;MM-DD-YY HH:MI:SS AM&amp;quot;));&lt;br /&gt;
       UTL_FILE.FCLOSE(v_MyFileHandle);&lt;br /&gt;
 EXCEPTION&lt;br /&gt;
      WHEN OTHERS THEN&lt;br /&gt;
           DBMS_OUTPUT.PUT_LINE&lt;br /&gt;
                (&amp;quot;ERROR &amp;quot; || TO_CHAR(SQLCODE) || SQLERRM);&lt;br /&gt;
           NULL; &lt;br /&gt;
 END; &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use UTL_FILE to print a transacript to a file.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
CREATE TABLE lecturer (&lt;br /&gt;
  id               NUMBER(5) PRIMARY KEY,&lt;br /&gt;
  first_name       VARCHAR2(20),&lt;br /&gt;
  last_name        VARCHAR2(20),&lt;br /&gt;
  major            VARCHAR2(30),&lt;br /&gt;
  current_credits  NUMBER(3)&lt;br /&gt;
  );&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10001, &amp;quot;Scott&amp;quot;, &amp;quot;Lawson&amp;quot;,&amp;quot;Computer Science&amp;quot;, 11);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major, current_credits)&lt;br /&gt;
              VALUES (10002, &amp;quot;Mar&amp;quot;, &amp;quot;Wells&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10003, &amp;quot;Jone&amp;quot;, &amp;quot;Bliss&amp;quot;,&amp;quot;Computer Science&amp;quot;, 8);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10004, &amp;quot;Man&amp;quot;, &amp;quot;Kyte&amp;quot;,&amp;quot;Economics&amp;quot;, 8);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10005, &amp;quot;Pat&amp;quot;, &amp;quot;Poll&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10006, &amp;quot;Tim&amp;quot;, &amp;quot;Viper&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
CREATE TABLE myStudent (&lt;br /&gt;
  student_id NUMBER(5) NOT NULL,&lt;br /&gt;
  department CHAR(3)   NOT NULL,&lt;br /&gt;
  course     NUMBER(3) NOT NULL,&lt;br /&gt;
  grade      CHAR(1)&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10000, &amp;quot;CS&amp;quot;, 102, &amp;quot;A&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10002, &amp;quot;CS&amp;quot;, 102, &amp;quot;B&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10003, &amp;quot;CS&amp;quot;, 102, &amp;quot;C&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10000, &amp;quot;HIS&amp;quot;, 101, &amp;quot;A&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10001, &amp;quot;HIS&amp;quot;, 101, &amp;quot;B&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10002, &amp;quot;HIS&amp;quot;, 101, &amp;quot;B&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10003, &amp;quot;HIS&amp;quot;, 101, &amp;quot;A&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10004, &amp;quot;HIS&amp;quot;, 101, &amp;quot;C&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10005, &amp;quot;HIS&amp;quot;, 101, &amp;quot;C&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10006, &amp;quot;HIS&amp;quot;, 101, &amp;quot;E&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10007, &amp;quot;HIS&amp;quot;, 101, &amp;quot;B&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10008, &amp;quot;HIS&amp;quot;, 101, &amp;quot;A&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10009, &amp;quot;HIS&amp;quot;, 101, &amp;quot;D&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10010, &amp;quot;HIS&amp;quot;, 101, &amp;quot;A&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10008, &amp;quot;NUT&amp;quot;, 307, &amp;quot;A&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10010, &amp;quot;NUT&amp;quot;, 307, &amp;quot;A&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10009, &amp;quot;MUS&amp;quot;, 410, &amp;quot;B&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10006, &amp;quot;MUS&amp;quot;, 410, &amp;quot;E&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10011, &amp;quot;MUS&amp;quot;, 410, &amp;quot;B&amp;quot;);&lt;br /&gt;
INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
                         VALUES (10000, &amp;quot;MUS&amp;quot;, 410, &amp;quot;B&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE PROCEDURE PrintTranscript (&lt;br /&gt;
  p_ID IN lecturer.ID%TYPE,&lt;br /&gt;
  p_FileDir IN VARCHAR2,&lt;br /&gt;
  p_FileName IN VARCHAR2) AS&lt;br /&gt;
  myLecturerGPA NUMBER;&lt;br /&gt;
  myLecturerRecord  lecturer%ROWTYPE;&lt;br /&gt;
  v_FileHandle UTL_FILE.FILE_TYPE;&lt;br /&gt;
  v_NumCredits NUMBER;&lt;br /&gt;
  CURSOR c_CurrentClasses IS&lt;br /&gt;
    SELECT *&lt;br /&gt;
      FROM myStudent&lt;br /&gt;
      WHERE student_id = p_ID;&lt;br /&gt;
BEGIN&lt;br /&gt;
  v_FileHandle := UTL_FILE.FOPEN(p_FileDir, p_FileName, &amp;quot;a&amp;quot;);&lt;br /&gt;
  SELECT *&lt;br /&gt;
    INTO myLecturerRecord&lt;br /&gt;
    FROM lecturer&lt;br /&gt;
    WHERE ID = p_ID;&lt;br /&gt;
  UTL_FILE.PUTF(v_FileHandle, &amp;quot;Student ID: %s\n&amp;quot;, myLecturerRecord.ID);&lt;br /&gt;
  UTL_FILE.PUTF(v_FileHandle, &amp;quot;Student Name: %s %s\n&amp;quot;, myLecturerRecord.first_name, myLecturerRecord.last_name);&lt;br /&gt;
  UTL_FILE.PUTF(v_FileHandle, &amp;quot;Major: %s\n&amp;quot;, myLecturerRecord.major);&lt;br /&gt;
  UTL_FILE.PUTF(v_FileHandle, &amp;quot;Transcript Printed on: %s\n\n\n&amp;quot;, TO_CHAR(SYSDATE, &amp;quot;Mon DD,YYYY HH24:MI:SS&amp;quot;));&lt;br /&gt;
  UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
EXCEPTION&lt;br /&gt;
  WHEN UTL_FILE.INVALID_OPERATION THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20061, &amp;quot;PrintTranscript: Invalid Operation&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.INVALID_FILEHANDLE THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20062, &amp;quot;PrintTranscript: Invalid File Handle&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.WRITE_ERROR THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20063, &amp;quot;PrintTranscript: Write Error&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.INVALID_MODE THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20064, &amp;quot;PrintTranscript: Invalid Mode&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.INTERNAL_ERROR THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20065, &amp;quot;PrintTranscript: Internal Error&amp;quot;);&lt;br /&gt;
END PrintTranscript;&lt;br /&gt;
/&lt;br /&gt;
drop table lecturer;&lt;br /&gt;
drop table myStudent;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use UTL_FILE to read from a file and insert into the lecturer table.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
CREATE TABLE lecturer (&lt;br /&gt;
  id               NUMBER(5) PRIMARY KEY,&lt;br /&gt;
  first_name       VARCHAR2(20),&lt;br /&gt;
  last_name        VARCHAR2(20),&lt;br /&gt;
  major            VARCHAR2(30),&lt;br /&gt;
  current_credits  NUMBER(3)&lt;br /&gt;
  );&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10001, &amp;quot;Scott&amp;quot;, &amp;quot;Lawson&amp;quot;,&amp;quot;Computer Science&amp;quot;, 11);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major, current_credits)&lt;br /&gt;
              VALUES (10002, &amp;quot;Mar&amp;quot;, &amp;quot;Wells&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10003, &amp;quot;Jone&amp;quot;, &amp;quot;Bliss&amp;quot;,&amp;quot;Computer Science&amp;quot;, 8);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10004, &amp;quot;Man&amp;quot;, &amp;quot;Kyte&amp;quot;,&amp;quot;Economics&amp;quot;, 8);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10005, &amp;quot;Pat&amp;quot;, &amp;quot;Poll&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
INSERT INTO lecturer (id, first_name, last_name, major,current_credits)&lt;br /&gt;
              VALUES (10006, &amp;quot;Tim&amp;quot;, &amp;quot;Viper&amp;quot;,&amp;quot;History&amp;quot;, 4);&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE PROCEDURE Loadlecturer (&lt;br /&gt;
  p_FileDir  IN VARCHAR2,&lt;br /&gt;
  p_FileName IN VARCHAR2,&lt;br /&gt;
  p_TotalInserted IN OUT NUMBER) AS&lt;br /&gt;
  v_FileHandle UTL_FILE.FILE_TYPE;&lt;br /&gt;
  v_NewLine  VARCHAR2(100);  -- Input line&lt;br /&gt;
  myFirstName lecturer.first_name%TYPE;&lt;br /&gt;
  v_LastName lecturer.last_name%TYPE;&lt;br /&gt;
  v_Major lecturer.major%TYPE;&lt;br /&gt;
  v_FirstComma NUMBER;&lt;br /&gt;
  v_SecondComma NUMBER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  v_FileHandle := UTL_FILE.FOPEN(p_FileDir, p_FileName, &amp;quot;r&amp;quot;);&lt;br /&gt;
  p_TotalInserted := 0;&lt;br /&gt;
  LOOP&lt;br /&gt;
    BEGIN&lt;br /&gt;
      UTL_FILE.GET_LINE(v_FileHandle, v_NewLine);&lt;br /&gt;
    EXCEPTION&lt;br /&gt;
      WHEN NO_DATA_FOUND THEN&lt;br /&gt;
        EXIT;&lt;br /&gt;
    END;&lt;br /&gt;
    v_FirstComma := INSTR(v_NewLine, &amp;quot;,&amp;quot;, 1, 1);&lt;br /&gt;
    v_SecondComma := INSTR(v_NewLine, &amp;quot;,&amp;quot;, 1, 2);&lt;br /&gt;
    myFirstName := SUBSTR(v_NewLine, 1, v_FirstComma - 1);&lt;br /&gt;
    v_LastName := SUBSTR(v_NewLine, v_FirstComma + 1,&lt;br /&gt;
                         v_SecondComma - v_FirstComma - 1);&lt;br /&gt;
    v_Major := SUBSTR(v_NewLine, v_SecondComma + 1);&lt;br /&gt;
    INSERT INTO lecturer (ID, first_name, last_name, major) VALUES (1, myFirstName, v_LastName, v_Major);&lt;br /&gt;
    p_TotalInserted := p_TotalInserted + 1;&lt;br /&gt;
  END LOOP;&lt;br /&gt;
  UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
  COMMIT;&lt;br /&gt;
EXCEPTION&lt;br /&gt;
  WHEN UTL_FILE.INVALID_OPERATION THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20051, &amp;quot;Loadlecturer: Invalid Operation&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.INVALID_FILEHANDLE THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20052, &amp;quot;Loadlecturer: Invalid File Handle&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.READ_ERROR THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20053, &amp;quot;Loadlecturer: Read Error&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.INVALID_PATH THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20054, &amp;quot;Loadlecturer: Invalid Path&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.INVALID_MODE THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20055, &amp;quot;Loadlecturer: Invalid Mode&amp;quot;);&lt;br /&gt;
  WHEN UTL_FILE.INTERNAL_ERROR THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20056, &amp;quot;Loadlecturer: Internal Error&amp;quot;);&lt;br /&gt;
  WHEN VALUE_ERROR THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE_APPLICATION_ERROR(-20057, &amp;quot;Loadlecturer: Value Error&amp;quot;);&lt;br /&gt;
  WHEN OTHERS THEN&lt;br /&gt;
    UTL_FILE.FCLOSE(v_FileHandle);&lt;br /&gt;
    RAISE;&lt;br /&gt;
END Loadlecturer;&lt;br /&gt;
/&lt;br /&gt;
drop table lecturer;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing &amp;quot;Hello World!&amp;quot; to a File==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
CREATE OR REPLACE PROCEDURE HELLOFLE IS&lt;br /&gt;
      v_MyFileHandle UTL_FILE.FILE_TYPE;&lt;br /&gt;
 BEGIN&lt;br /&gt;
      v_MyFileHandle := UTL_FILE.FOPEN(&amp;quot;C:\&amp;quot;,&amp;quot;HELLO.TXT&amp;quot;,&amp;quot;a&amp;quot;);&lt;br /&gt;
      UTL_FILE.PUT_LINE(v_MyFileHandle,&amp;quot;Hello World! &amp;quot; || TO_CHAR(SYSDATE,&amp;quot;MM-DD-YY HH:MI:SS AM&amp;quot;));&lt;br /&gt;
     UTL_FILE.FCLOSE(v_MyFileHandle);&lt;br /&gt;
EXCEPTION&lt;br /&gt;
      WHEN OTHERS THEN&lt;br /&gt;
           DBMS_OUTPUT.PUT_LINE(&amp;quot;ERROR &amp;quot; || TO_CHAR(SQLCODE) || SQLERRM);&lt;br /&gt;
           NULL;&lt;br /&gt;
END; &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>