<?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_Tutorial%2FSystem_Packages%2FFile_Read_with_UTL_FILE</id>
		<title>Oracle PL/SQL Tutorial/System Packages/File Read with 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_Tutorial%2FSystem_Packages%2FFile_Read_with_UTL_FILE"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/File_Read_with_UTL_FILE&amp;action=history"/>
		<updated>2026-07-15T17:46:35Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/File_Read_with_UTL_FILE&amp;diff=3274&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_Tutorial/System_Packages/File_Read_with_UTL_FILE&amp;diff=3274&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</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_Tutorial/System_Packages/File_Read_with_UTL_FILE&amp;diff=3275&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/System_Packages/File_Read_with_UTL_FILE&amp;diff=3275&amp;oldid=prev"/>
				<updated>2010-05-26T10:05:49Z</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;== Get a line from a file with UTL_FILE package==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE get_line(file_in IN UTL_FILE.FILE_TYPE, line_out OUT VARCHAR2, eof_out OUT BOOLEAN)&lt;br /&gt;
  2  IS&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     UTL_FILE.GET_LINE (file_in, line_out);&lt;br /&gt;
  5     eof_out := FALSE;&lt;br /&gt;
  6  EXCEPTION&lt;br /&gt;
  7     WHEN NO_DATA_FOUND&lt;br /&gt;
  8     THEN&lt;br /&gt;
  9        line_out := NULL;&lt;br /&gt;
 10        eof_out  := TRUE;&lt;br /&gt;
 11  END;&lt;br /&gt;
 12  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Read 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE readit&lt;br /&gt;
  2  IS&lt;br /&gt;
  3    v_filehandle_input UTL_FILE.FILE_TYPE;&lt;br /&gt;
  4    v_newline     VARCHAR2(32767);&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    v_filehandle_input := UTL_FILE.FOPEN(&amp;quot;c:\temp&amp;quot;,&amp;quot;functions.sql&amp;quot;, &amp;quot;r&amp;quot;, 32767 );&lt;br /&gt;
  7   loop&lt;br /&gt;
  8    BEGIN&lt;br /&gt;
  9      UTL_FILE.GET_LINE(v_filehandle_input,v_newline);&lt;br /&gt;
 10      DBMS_OUTPUT.PUT_LINE(v_newline);&lt;br /&gt;
 11    EXCEPTION&lt;br /&gt;
 12      WHEN NO_DATA_FOUND THEN EXIT ;&lt;br /&gt;
 13    END;&lt;br /&gt;
 14   end loop;&lt;br /&gt;
 15    UTL_FILE.FCLOSE (v_filehandle_input) ;&lt;br /&gt;
 16  end;&lt;br /&gt;
 17  /&lt;br /&gt;
Warning: Procedure created with compilation errors.&lt;br /&gt;
SQL&amp;gt; show errors&lt;br /&gt;
Errors for PROCEDURE READIT:&lt;br /&gt;
LINE/COL ERROR&lt;br /&gt;
-------- -----------------------------------------------------------------&lt;br /&gt;
3/22     PL/SQL: Item ignored&lt;br /&gt;
3/22     PLS-00201: identifier &amp;quot;UTL_FILE&amp;quot; must be declared&lt;br /&gt;
6/3      PL/SQL: Statement ignored&lt;br /&gt;
6/3      PLS-00320: the declaration of the type of this expression is&lt;br /&gt;
         incomplete or malformed&lt;br /&gt;
9/5      PL/SQL: Statement ignored&lt;br /&gt;
9/23     PLS-00320: the declaration of the type of this expression is&lt;br /&gt;
         incomplete or malformed&lt;br /&gt;
15/3     PL/SQL: Statement ignored&lt;br /&gt;
LINE/COL ERROR&lt;br /&gt;
-------- -----------------------------------------------------------------&lt;br /&gt;
15/20    PLS-00320: the declaration of the type of this expression is&lt;br /&gt;
         incomplete or malformed&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Read from the CLOB in chunks of 1000 characters and write to the output 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myClob&lt;br /&gt;
  2  (id NUMBER PRIMARY KEY,&lt;br /&gt;
  3   clob_data CLOB);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    clob_pointer CLOB;&lt;br /&gt;
  3    v_Buf VARCHAR2(1000);&lt;br /&gt;
  4    Amount BINARY_INTEGER :=1000;&lt;br /&gt;
  5    Position INTEGER :=1;&lt;br /&gt;
  6    fp UTL_FILE.FILE_TYPE;&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8&lt;br /&gt;
  9    insert into myClob values (1,EMPTY_CLOB());&lt;br /&gt;
 10&lt;br /&gt;
 11    SELECT clob_data INTO clob_pointer FROM myClob WHERE id = 1;&lt;br /&gt;
 12&lt;br /&gt;
 13    if (DBMS_LOB.ISOPEN(clob_pointer)!=1) then&lt;br /&gt;
 14&lt;br /&gt;
 15      DBMS_LOB.OPEN (clob_pointer,DBMS_LOB.LOB_READONLY);&lt;br /&gt;
 16&lt;br /&gt;
 17    end if;&lt;br /&gt;
 18&lt;br /&gt;
 19    fp :=UTL_FILE.FOPEN(&amp;quot;BFILE_DIR&amp;quot;,&amp;quot;output.dat&amp;quot;,&amp;quot;w&amp;quot;);&lt;br /&gt;
 20&lt;br /&gt;
 21    LOOP&lt;br /&gt;
 22&lt;br /&gt;
 23      BEGIN&lt;br /&gt;
 24&lt;br /&gt;
 25        DBMS_LOB.READ (clob_pointer,Amount,Position,v_Buf);&lt;br /&gt;
 26&lt;br /&gt;
 27        UTL_FILE.PUT_LINE(fp,v_Buf,TRUE);&lt;br /&gt;
 28&lt;br /&gt;
 29        Position :=Position +Amount;&lt;br /&gt;
 30&lt;br /&gt;
 31      EXCEPTION&lt;br /&gt;
 32&lt;br /&gt;
 33        WHEN NO_DATA_FOUND THEN&lt;br /&gt;
 34&lt;br /&gt;
 35          EXIT;&lt;br /&gt;
 36&lt;br /&gt;
 37      END;&lt;br /&gt;
 38&lt;br /&gt;
 39    END LOOP;&lt;br /&gt;
 40&lt;br /&gt;
 41    UTL_FILE.FCLOSE(fp);&lt;br /&gt;
 42&lt;br /&gt;
 43    DBMS_LOB.CLOSE (clob_pointer);&lt;br /&gt;
 44  END;&lt;br /&gt;
 45  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myClob;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Show file content==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE show_file (loc IN VARCHAR2,file IN VARCHAR2)&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     fid UTL_FILE.FILE_TYPE := UTL_FILE.FOPEN (loc, file, &amp;quot;R&amp;quot;);&lt;br /&gt;
  4     line VARCHAR2(2000);&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6     DBMS_OUTPUT.PUT_LINE (file);&lt;br /&gt;
  7     LOOP&lt;br /&gt;
  8        UTL_FILE.GET_LINE (fid, line);&lt;br /&gt;
  9        DBMS_OUTPUT.PUT_LINE (line);&lt;br /&gt;
 10     END LOOP;&lt;br /&gt;
 11  EXCEPTION&lt;br /&gt;
 12     WHEN OTHERS THEN UTL_FILE.FCLOSE (fid);&lt;br /&gt;
 13  END;&lt;br /&gt;
 14  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>