<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FLarge_Objects%2Fbfile</id>
		<title>Oracle PL/SQL/Large Objects/bfile - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FLarge_Objects%2Fbfile"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Large_Objects/bfile&amp;action=history"/>
		<updated>2026-04-04T09:55:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Large_Objects/bfile&amp;diff=2600&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Large_Objects/bfile&amp;diff=2600&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://www.sqle.ru/index.php?title=Oracle_PL/SQL/Large_Objects/bfile&amp;diff=2601&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Large_Objects/bfile&amp;diff=2601&amp;oldid=prev"/>
				<updated>2010-05-26T10:02:05Z</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;==BFILE Comparisons==&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; CREATE OR REPLACE DIRECTORY books_Dir AS &amp;quot;C:\BOOKS&amp;quot;;&lt;br /&gt;
Directory created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2       v_FILE1 BFILE;&lt;br /&gt;
  3       v_FILE2 BFILE;&lt;br /&gt;
  4       v_FILE3 BFILE;&lt;br /&gt;
  5       v_GETLENGTH1 INTEGER;&lt;br /&gt;
  6       v_GETLENGTH2 INTEGER;&lt;br /&gt;
  7       v_GETLENGTH3 INTEGER;&lt;br /&gt;
  8       v_COMPARELENGTH INTEGER;&lt;br /&gt;
  9       v_COMPARERESULT INTEGER;&lt;br /&gt;
 10&lt;br /&gt;
 11  BEGIN&lt;br /&gt;
 12       v_FILE1 := BFILENAME(&amp;quot;BOOKS_DIR&amp;quot;,&amp;quot;1.GIF&amp;quot;);&lt;br /&gt;
 13       v_FILE2 := BFILENAME(&amp;quot;BOOKS_DIR&amp;quot;,&amp;quot;2.GIF&amp;quot;);&lt;br /&gt;
 14       v_FILE3 := BFILENAME(&amp;quot;BOOKS_DIR&amp;quot;,&amp;quot;5.GIF&amp;quot;);&lt;br /&gt;
 15&lt;br /&gt;
 16       DBMS_LOB.FILEOPEN(v_FILE1);&lt;br /&gt;
 17       DBMS_LOB.FILEOPEN(v_FILE2);&lt;br /&gt;
 18       DBMS_LOB.FILEOPEN(v_FILE3);&lt;br /&gt;
 19&lt;br /&gt;
 20       v_GETLENGTH1 := DBMS_LOB.GETLENGTH(v_FILE1);&lt;br /&gt;
 21       v_GETLENGTH2 := DBMS_LOB.GETLENGTH(v_FILE2);&lt;br /&gt;
 22       v_GETLENGTH3 := DBMS_LOB.GETLENGTH(v_FILE3);&lt;br /&gt;
 23&lt;br /&gt;
 24       IF v_GETLENGTH1 &amp;lt; v_GETLENGTH2 THEN&lt;br /&gt;
 25            v_COMPARELENGTH := v_GETLENGTH1;&lt;br /&gt;
 26       ELSE&lt;br /&gt;
 27            v_COMPARELENGTH := v_GETLENGTH2;&lt;br /&gt;
 28       END IF;&lt;br /&gt;
 29&lt;br /&gt;
 30       v_COMPARERESULT := DBMS_LOB.ruPARE(v_FILE1,v_FILE2,v_COMPARELENGTH,1,1);&lt;br /&gt;
 31&lt;br /&gt;
 32       IF v_COMPARERESULT = 0 THEN&lt;br /&gt;
 33            DBMS_OUTPUT.PUT_LINE(&amp;quot;Both Files Are Identical&amp;quot;);&lt;br /&gt;
 34       ELSE&lt;br /&gt;
 35            DBMS_OUTPUT.PUT_LINE(&amp;quot;Both Files Are Different&amp;quot;);&lt;br /&gt;
 36       END IF;&lt;br /&gt;
 37&lt;br /&gt;
 38       IF v_GETLENGTH1 &amp;lt; v_GETLENGTH3 THEN&lt;br /&gt;
 39            v_COMPARELENGTH := v_GETLENGTH1;&lt;br /&gt;
 40       ELSE&lt;br /&gt;
 41            v_COMPARELENGTH := v_GETLENGTH3;&lt;br /&gt;
 42       END IF;&lt;br /&gt;
 43&lt;br /&gt;
 44       v_COMPARERESULT := DBMS_LOB.ruPARE(v_FILE1,v_FILE3,v_COMPARELENGTH,1,1);&lt;br /&gt;
 45&lt;br /&gt;
 46       IF v_COMPARERESULT = 0 THEN&lt;br /&gt;
 47            DBMS_OUTPUT.PUT_LINE(&amp;quot;Both Files Are Identical&amp;quot;);&lt;br /&gt;
 48       ELSE&lt;br /&gt;
 49            DBMS_OUTPUT.PUT_LINE(&amp;quot;Both Files Are Different&amp;quot;);&lt;br /&gt;
 50       END IF;&lt;br /&gt;
 51&lt;br /&gt;
 52       DBMS_LOB.FILECLOSEALL;&lt;br /&gt;
 53  END;&lt;br /&gt;
 54  /&lt;br /&gt;
DECLARE&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-22288: file or LOB operation FILEOPEN failed&lt;br /&gt;
The system cannot find the path specified.&lt;br /&gt;
ORA-06512: at &amp;quot;SYS.DBMS_LOB&amp;quot;, line 523&lt;br /&gt;
ORA-06512: at line 16&lt;br /&gt;
&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;
==BFILE File Operations==&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; CREATE OR REPLACE DIRECTORY books_Dir AS &amp;quot;C:\BOOKS&amp;quot;;&lt;br /&gt;
Directory 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_BOOKFILE BFILE;&lt;br /&gt;
  3       v_DIRNAME VARCHAR2(30);&lt;br /&gt;
  4       v_LOCATION VARCHAR2(2000);&lt;br /&gt;
  5       v_FILEISOPEN INTEGER;&lt;br /&gt;
  6       v_FILEEXISTS INTEGER;&lt;br /&gt;
  7&lt;br /&gt;
  8  BEGIN&lt;br /&gt;
  9       v_BOOKFILE := BFILENAME(&amp;quot;BOOKS_DIR&amp;quot;,&amp;quot;BOOK1.GIF&amp;quot;);&lt;br /&gt;
 10       v_FILEISOPEN := DBMS_LOB.FILEISOPEN(v_BOOKFILE);&lt;br /&gt;
 11&lt;br /&gt;
 12       v_FILEEXISTS := DBMS_LOB.FILEEXISTS(v_BOOKFILE);&lt;br /&gt;
 13&lt;br /&gt;
 14       IF v_FILEEXISTS = 1 THEN&lt;br /&gt;
 15             DBMS_OUTPUT.PUT_LINE(&amp;quot;The file exists&amp;quot;);&lt;br /&gt;
 16       ELSE&lt;br /&gt;
 17             DBMS_OUTPUT.PUT_LINE(&amp;quot;The file cannot be found&amp;quot;);&lt;br /&gt;
 18       END IF;&lt;br /&gt;
 19&lt;br /&gt;
 20       IF v_FILEISOPEN = 1 THEN  --Determine actions if file is opened&lt;br /&gt;
 21             DBMS_OUTPUT.PUT_LINE(&amp;quot;The file is open&amp;quot;);&lt;br /&gt;
 22       ELSE&lt;br /&gt;
 23             DBMS_OUTPUT.PUT_LINE(&amp;quot;Opening the file&amp;quot;);&lt;br /&gt;
 24             DBMS_LOB.FILEOPEN(v_BOOKFILE);&lt;br /&gt;
 25       END IF;&lt;br /&gt;
 26       DBMS_LOB.FILEGETNAME(v_BOOKFILE,v_DIRNAME,v_LOCATION);&lt;br /&gt;
 27       DBMS_OUTPUT.PUT_LINE(&amp;quot;The Directory Object is: &amp;quot; || v_DIRNAME ||&lt;br /&gt;
 28            &amp;quot; The File Name is: &amp;quot; || v_LOCATION);&lt;br /&gt;
 29&lt;br /&gt;
 30       DBMS_LOB.FILECLOSE(v_BOOKFILE); -- Close the BFILE&lt;br /&gt;
 31&lt;br /&gt;
 32  END;&lt;br /&gt;
 33  /&lt;br /&gt;
The file cannot be found&lt;br /&gt;
Opening the file&lt;br /&gt;
DECLARE&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-22288: file or LOB operation FILEOPEN failed&lt;br /&gt;
The system cannot find the path specified.&lt;br /&gt;
ORA-06512: at &amp;quot;SYS.DBMS_LOB&amp;quot;, line 523&lt;br /&gt;
ORA-06512: at line 24&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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;
==BFILENAME function==&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; CREATE TABLE lobdemo (&lt;br /&gt;
  2    key NUMBER,&lt;br /&gt;
  3    bfile_col BFILE);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE DIRECTORY utils AS &amp;quot;/home/utils&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE DIRECTORY code AS &amp;quot;/home/code&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lobdemo (key, bfile_col)&lt;br /&gt;
  2    VALUES (10, BFILENAME(&amp;quot;utils&amp;quot;, &amp;quot;file1.txt&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lobdemo (key, bfile_col)&lt;br /&gt;
  2    VALUES (11, BFILENAME(&amp;quot;utils&amp;quot;, &amp;quot;file2.txt&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table lobdemo;&lt;br /&gt;
Table dropped.&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;
==Call BFILENAME to get pointer to a BFILE==&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; CREATE TABLE lobdemo (&lt;br /&gt;
  2    key NUMBER,&lt;br /&gt;
  3    bfile_col BFILE);&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_BFILE1 BFILE;&lt;br /&gt;
  3    v_BFILE2 BFILE;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    v_BFILE1 := BFILENAME(&amp;quot;code&amp;quot;, &amp;quot;file1.c&amp;quot;);&lt;br /&gt;
  6    v_BFILE2 := BFILENAME(&amp;quot;code&amp;quot;, &amp;quot;file2.c&amp;quot;);&lt;br /&gt;
  7&lt;br /&gt;
  8    INSERT INTO lobdemo (key, bfile_col)&lt;br /&gt;
  9      VALUES (12, v_BFILE1);&lt;br /&gt;
 10&lt;br /&gt;
 11    UPDATE lobdemo&lt;br /&gt;
 12      SET bfile_col = v_BFILE2&lt;br /&gt;
 13      WHERE key = 10;&lt;br /&gt;
 14&lt;br /&gt;
 15    COMMIT;&lt;br /&gt;
 16  END;&lt;br /&gt;
 17  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table lobdemo;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&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;
==Create the BFILE directory==&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; CREATE OR REPLACE DIRECTORY SAMPLE_FILES_DIR AS &amp;quot;C:\sample_files&amp;quot;;&lt;br /&gt;
Directory created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop directory SAMPLE_FILES_DIR;&lt;br /&gt;
Directory 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;
==Insert value to bfile column==&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;&lt;br /&gt;
SQL&amp;gt; create table bfile_table(&lt;br /&gt;
  2        name varchar2(255),&lt;br /&gt;
  3        the_file bfile );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into bfile_table values ( &amp;quot;doc 1&amp;quot;, bfilename( &amp;quot;WROX_DIR&amp;quot;, &amp;quot;my_doc.pdf&amp;quot; ) );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from bfile_table;&lt;br /&gt;
SP2-0678: Column or attribute type can not be displayed by SQL*Plus&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table bfile_table;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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;
==Two locators pointing to the same 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; CREATE TABLE lobdemo (&lt;br /&gt;
  2    key NUMBER,&lt;br /&gt;
  3    bfile_col BFILE);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lobdemo (key, bfile_col)&lt;br /&gt;
  2    VALUES (15, BFILENAME(&amp;quot;xxxx&amp;quot;, &amp;quot;yyyy&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lobdemo (key, bfile_col)&lt;br /&gt;
  2    VALUES (19, BFILENAME(&amp;quot;code&amp;quot;, &amp;quot;file3.c&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO lobdemo (key, bfile_col)&lt;br /&gt;
  2    VALUES (20, BFILENAME(&amp;quot;code&amp;quot;, &amp;quot;file3.c&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DELETE FROM lobdemo&lt;br /&gt;
  2    WHERE key = 20;&lt;br /&gt;
1 row deleted.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table lobdemo;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>