<?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%2Fdbms_lob</id>
		<title>Oracle PL/SQL/System Packages/dbms lob - История изменений</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%2Fdbms_lob"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/dbms_lob&amp;action=history"/>
		<updated>2026-04-04T11:47:47Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/dbms_lob&amp;diff=1248&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/dbms_lob&amp;diff=1248&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/dbms_lob&amp;diff=1249&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/dbms_lob&amp;diff=1249&amp;oldid=prev"/>
				<updated>2010-05-26T09:55:20Z</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;==Call dbms_lob.write to write value to clob type value==&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;
  2&lt;br /&gt;
SQL&amp;gt;      declare&lt;br /&gt;
  2        l_clob clob := &amp;quot;12345&amp;quot;;&lt;br /&gt;
  3      begin&lt;br /&gt;
  4        dbms_lob.write( l_clob, 2, 3, &amp;quot;AB&amp;quot; );&lt;br /&gt;
  5        dbms_output.put_line( l_clob );&lt;br /&gt;
  6        dbms_lob.write( l_clob, 2, 9, &amp;quot;CD&amp;quot; );&lt;br /&gt;
  7        dbms_output.put_line( l_clob );&lt;br /&gt;
  8      end;&lt;br /&gt;
  9      /&lt;br /&gt;
12AB5&lt;br /&gt;
12AB5   CD&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==DBMS_LOB.CREATETEMPORARY==&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; CREATE TABLE myTable (&lt;br /&gt;
  2    id          INTEGER PRIMARY KEY,&lt;br /&gt;
  3    clobData CLOB NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE temporary_lob_example IS&lt;br /&gt;
  2    clobVariable CLOB;&lt;br /&gt;
  3    amount_var INTEGER := 19;&lt;br /&gt;
  4    offsetPos INTEGER := 1;&lt;br /&gt;
  5    charVariable VARCHAR2(19) := &amp;quot;AAAA&amp;quot;;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7    DBMS_LOB.CREATETEMPORARY(clobVariable, TRUE);&lt;br /&gt;
  8    DBMS_LOB.WRITE(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
  9&lt;br /&gt;
 10    IF (DBMS_LOB.ISTEMPORARY(clobVariable) = 1) THEN&lt;br /&gt;
 11      DBMS_OUTPUT.PUT_LINE(&amp;quot;clobVariable is temporary&amp;quot;);&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13&lt;br /&gt;
 14    DBMS_LOB.READ(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
 15    DBMS_OUTPUT.PUT_LINE(&amp;quot;charVariable = &amp;quot; || charVariable);&lt;br /&gt;
 16&lt;br /&gt;
 17    DBMS_LOB.FREETEMPORARY(clobVariable);&lt;br /&gt;
 18  END temporary_lob_example;&lt;br /&gt;
 19  /&lt;br /&gt;
Procedure created.&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_LOB.ERASE==&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; CREATE TABLE myTable (&lt;br /&gt;
  2    id          INTEGER PRIMARY KEY,&lt;br /&gt;
  3    clobData    CLOB NOT NULL&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; CREATE OR REPLACE PROCEDURE readClob(id_par IN INTEGER) IS&lt;br /&gt;
  2    clobVariable CLOB;&lt;br /&gt;
  3    charVariable VARCHAR2(50);&lt;br /&gt;
  4    offsetPos INTEGER := 1;&lt;br /&gt;
  5    amount_var INTEGER := 50;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7    initClob(clobVariable, id_par);&lt;br /&gt;
  8    DBMS_LOB.READ(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
  9    DBMS_OUTPUT.PUT_LINE(&amp;quot;charVariable = &amp;quot; || charVariable);&lt;br /&gt;
 10    DBMS_OUTPUT.PUT_LINE(&amp;quot;amount_var = &amp;quot; || amount_var);&lt;br /&gt;
 11  END readClob;&lt;br /&gt;
 12  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE erase_example IS&lt;br /&gt;
  2    clobVariable CLOB;&lt;br /&gt;
  3    offsetPos INTEGER := 2;&lt;br /&gt;
  4    amount_var INTEGER := 5;&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    SELECT clobData INTO clobVariable FROM myTable WHERE id = 1 FOR UPDATE;&lt;br /&gt;
  7&lt;br /&gt;
  8    readClob(1);&lt;br /&gt;
  9    DBMS_LOB.ERASE(clobVariable, amount_var, offsetPos);&lt;br /&gt;
 10    readClob(1);&lt;br /&gt;
 11&lt;br /&gt;
 12  END erase_example;&lt;br /&gt;
 13  /&lt;br /&gt;
Procedure created.&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_LOB.FREETEMPORARY==&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; CREATE TABLE myTable (&lt;br /&gt;
  2    id          INTEGER PRIMARY KEY,&lt;br /&gt;
  3    clobData CLOB NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE temporary_lob_example IS&lt;br /&gt;
  2    clobVariable CLOB;&lt;br /&gt;
  3    amount_var INTEGER := 19;&lt;br /&gt;
  4    offsetPos INTEGER := 1;&lt;br /&gt;
  5    charVariable VARCHAR2(19) := &amp;quot;AAAA&amp;quot;;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7    DBMS_LOB.CREATETEMPORARY(clobVariable, TRUE);&lt;br /&gt;
  8    DBMS_LOB.WRITE(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
  9&lt;br /&gt;
 10    IF (DBMS_LOB.ISTEMPORARY(clobVariable) = 1) THEN&lt;br /&gt;
 11      DBMS_OUTPUT.PUT_LINE(&amp;quot;clobVariable is temporary&amp;quot;);&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13&lt;br /&gt;
 14    DBMS_LOB.READ(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
 15    DBMS_OUTPUT.PUT_LINE(&amp;quot;charVariable = &amp;quot; || charVariable);&lt;br /&gt;
 16&lt;br /&gt;
 17    DBMS_LOB.FREETEMPORARY(clobVariable);&lt;br /&gt;
 18  END temporary_lob_example;&lt;br /&gt;
 19  /&lt;br /&gt;
Procedure created.&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_LOB.ISTEMPORARY==&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; CREATE TABLE myTable (&lt;br /&gt;
  2    id          INTEGER PRIMARY KEY,&lt;br /&gt;
  3    clobData CLOB NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE temporary_lob_example IS&lt;br /&gt;
  2    clobVariable CLOB;&lt;br /&gt;
  3    amount_var INTEGER := 19;&lt;br /&gt;
  4    offsetPos INTEGER := 1;&lt;br /&gt;
  5    charVariable VARCHAR2(19) := &amp;quot;AAAA&amp;quot;;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7    DBMS_LOB.CREATETEMPORARY(clobVariable, TRUE);&lt;br /&gt;
  8    DBMS_LOB.WRITE(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
  9&lt;br /&gt;
 10    IF (DBMS_LOB.ISTEMPORARY(clobVariable) = 1) THEN&lt;br /&gt;
 11      DBMS_OUTPUT.PUT_LINE(&amp;quot;clobVariable is temporary&amp;quot;);&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13&lt;br /&gt;
 14    DBMS_LOB.READ(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
 15    DBMS_OUTPUT.PUT_LINE(&amp;quot;charVariable = &amp;quot; || charVariable);&lt;br /&gt;
 16&lt;br /&gt;
 17    DBMS_LOB.FREETEMPORARY(clobVariable);&lt;br /&gt;
 18  END temporary_lob_example;&lt;br /&gt;
 19  /&lt;br /&gt;
Procedure created.&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_LOB.READ==&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; CREATE TABLE myTable (&lt;br /&gt;
  2    id          INTEGER PRIMARY KEY,&lt;br /&gt;
  3    clobData CLOB NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE temporary_lob_example IS&lt;br /&gt;
  2    clobVariable CLOB;&lt;br /&gt;
  3    amount_var INTEGER := 19;&lt;br /&gt;
  4    offsetPos INTEGER := 1;&lt;br /&gt;
  5    charVariable VARCHAR2(19) := &amp;quot;AAAA&amp;quot;;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7    DBMS_LOB.CREATETEMPORARY(clobVariable, TRUE);&lt;br /&gt;
  8    DBMS_LOB.WRITE(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
  9&lt;br /&gt;
 10    IF (DBMS_LOB.ISTEMPORARY(clobVariable) = 1) THEN&lt;br /&gt;
 11      DBMS_OUTPUT.PUT_LINE(&amp;quot;clobVariable is temporary&amp;quot;);&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13&lt;br /&gt;
 14    DBMS_LOB.READ(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
 15    DBMS_OUTPUT.PUT_LINE(&amp;quot;charVariable = &amp;quot; || charVariable);&lt;br /&gt;
 16&lt;br /&gt;
 17    DBMS_LOB.FREETEMPORARY(clobVariable);&lt;br /&gt;
 18  END temporary_lob_example;&lt;br /&gt;
 19  /&lt;br /&gt;
Procedure created.&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_LOB.SUBSTR: Select the first 50 characters of clob_col, and the first 25 bytes of blob_col, for each row.==&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 lobdemo (&lt;br /&gt;
  2    key NUMBER,&lt;br /&gt;
  3    clob_col CLOB,&lt;br /&gt;
  4    blob_col BLOB);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; column CLOB_Data format a60&lt;br /&gt;
SQL&amp;gt; column BLOB_Data format a60&lt;br /&gt;
SQL&amp;gt; SELECT key,&lt;br /&gt;
  2         DBMS_LOB.SUBSTR(clob_col, 50) CLOB_Data,&lt;br /&gt;
  3         DBMS_LOB.SUBSTR(blob_col, 25) BLOB_Data&lt;br /&gt;
  4    FROM lobdemo&lt;br /&gt;
  5    WHERE key IN (0, 100, 101, 102, 103, 1000, 1001, 1002)&lt;br /&gt;
  6    ORDER BY key;&lt;br /&gt;
no rows selected&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;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_LOB.WRITE==&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; CREATE TABLE myTable (&lt;br /&gt;
  2    id          INTEGER PRIMARY KEY,&lt;br /&gt;
  3    clobData CLOB NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE temporary_lob_example IS&lt;br /&gt;
  2    clobVariable CLOB;&lt;br /&gt;
  3    amount_var INTEGER := 19;&lt;br /&gt;
  4    offsetPos INTEGER := 1;&lt;br /&gt;
  5    charVariable VARCHAR2(19) := &amp;quot;AAAA&amp;quot;;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7    DBMS_LOB.CREATETEMPORARY(clobVariable, TRUE);&lt;br /&gt;
  8    DBMS_LOB.WRITE(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
  9&lt;br /&gt;
 10    IF (DBMS_LOB.ISTEMPORARY(clobVariable) = 1) THEN&lt;br /&gt;
 11      DBMS_OUTPUT.PUT_LINE(&amp;quot;clobVariable is temporary&amp;quot;);&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13&lt;br /&gt;
 14    DBMS_LOB.READ(clobVariable, amount_var, offsetPos, charVariable);&lt;br /&gt;
 15    DBMS_OUTPUT.PUT_LINE(&amp;quot;charVariable = &amp;quot; || charVariable);&lt;br /&gt;
 16&lt;br /&gt;
 17    DBMS_LOB.FREETEMPORARY(clobVariable);&lt;br /&gt;
 18  END temporary_lob_example;&lt;br /&gt;
 19  /&lt;br /&gt;
Procedure created.&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==This block demonstrates DBMS_LOB.GETLENGTH.==&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 lobdemo (&lt;br /&gt;
  2    key NUMBER,&lt;br /&gt;
  3    clob_col CLOB,&lt;br /&gt;
  4    blob_col BLOB);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set serveroutput on format wrapped&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    CURSOR c_LOBQuery IS&lt;br /&gt;
  3      SELECT key, clob_col, blob_col&lt;br /&gt;
  4      FROM lobdemo&lt;br /&gt;
  5      WHERE key IN (0, 100, 101, 102, 103, 1000, 1001, 1002)&lt;br /&gt;
  6      ORDER BY key;&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8    FOR v_Rec IN c_LOBQuery LOOP&lt;br /&gt;
  9      DBMS_OUTPUT.PUT_LINE(&amp;quot;Key: &amp;quot; || v_Rec.key);&lt;br /&gt;
 10      DBMS_OUTPUT.PUT_LINE(&amp;quot;  Length of CLOB: &amp;quot; ||&lt;br /&gt;
 11        DBMS_LOB.GETLENGTH(v_Rec.clob_col));&lt;br /&gt;
 12      DBMS_OUTPUT.PUT_LINE(&amp;quot;  Length of BLOB: &amp;quot; ||&lt;br /&gt;
 13        DBMS_LOB.GETLENGTH(v_Rec.blob_col));&lt;br /&gt;
 14    END LOOP;&lt;br /&gt;
 15  END;&lt;br /&gt;
 16  /&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==This block demonstrates the use of DBMS_LOB.COPY.==&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; set serveroutput on&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    clob_col CLOB,&lt;br /&gt;
  4    blob_col BLOB);&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_Row100 lobdemo%ROWTYPE;&lt;br /&gt;
  3    v_Row101 lobdemo%ROWTYPE;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    SELECT *&lt;br /&gt;
  6      INTO v_Row100&lt;br /&gt;
  7      FROM lobdemo&lt;br /&gt;
  8      WHERE key = 100;&lt;br /&gt;
  9    SELECT *&lt;br /&gt;
 10      INTO v_Row101&lt;br /&gt;
 11      FROM lobdemo&lt;br /&gt;
 12      WHERE key = 101&lt;br /&gt;
 13      FOR UPDATE;&lt;br /&gt;
 14&lt;br /&gt;
 15    DBMS_OUTPUT.PUT_LINE(&amp;quot;Initial values of row 101:&amp;quot;);&lt;br /&gt;
 16    LOBUtils.Print(v_Row101.clob_col);&lt;br /&gt;
 17    LOBUtils.Print(v_Row101.blob_col);&lt;br /&gt;
 18&lt;br /&gt;
 19    DBMS_LOB.COPY(v_Row101.clob_col, v_Row100.clob_col, 26, 50, 1);&lt;br /&gt;
 20&lt;br /&gt;
 21    DBMS_LOB.COPY(v_Row101.blob_col, v_Row100.blob_col, 5, 2, 1);&lt;br /&gt;
 22&lt;br /&gt;
 23    DBMS_OUTPUT.PUT_LINE(&amp;quot;After copy, values of row 101:&amp;quot;);&lt;br /&gt;
 24    LOBUtils.Print(v_Row101.clob_col);&lt;br /&gt;
 25    LOBUtils.Print(v_Row101.blob_col);&lt;br /&gt;
 26  END;&lt;br /&gt;
 27  /&lt;br /&gt;
DECLARE&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-01403: no data found&lt;br /&gt;
ORA-06512: at line 5&lt;br /&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;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==This script tests the DBMS_LOB.LOADFROMFILE procedure==&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 book (&lt;br /&gt;
  2     id     NUMBER (10) PRIMARY KEY,&lt;br /&gt;
  3     isbn               CHAR(10 CHAR),&lt;br /&gt;
  4     description        CLOB,&lt;br /&gt;
  5     nls_description    NCLOB,&lt;br /&gt;
  6     misc               BLOB,&lt;br /&gt;
  7     chapter_title      VARCHAR2(30 CHAR),&lt;br /&gt;
  8     bfile_description  BFILE&lt;br /&gt;
  9  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (id,isbn,description,nls_description,misc,bfile_description)VALUES (1,&amp;quot;3&amp;quot;, EMPTY_CLOB(),EMPTY_CLOB(),EMPTY_BLOB(),BFILENAME(&amp;quot;book_LOC&amp;quot;, &amp;quot;b.pdf&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set serveroutput on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     v_dest_blob BLOB;&lt;br /&gt;
  3     v_dest_clob CLOB;&lt;br /&gt;
  4     v_source_locator1 BFILE := BFILENAME(&amp;quot;book_LOC&amp;quot;, &amp;quot;bfile_example.pdf&amp;quot;);&lt;br /&gt;
  5     v_source_locator2 BFILE := BFILENAME(&amp;quot;book_LOC&amp;quot;, &amp;quot;bfile_example.txt&amp;quot;);&lt;br /&gt;
  6&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8&lt;br /&gt;
  9     UPDATE book SET description = EMPTY_CLOB(),misc = EMPTY_BLOB();&lt;br /&gt;
 10&lt;br /&gt;
 11     SELECT description, misc INTO v_dest_clob, v_dest_blob FROM book WHERE id = 1 FOR UPDATE;&lt;br /&gt;
 12&lt;br /&gt;
 13     &lt;br /&gt;
 14     DBMS_LOB.OPEN(v_source_locator1, DBMS_LOB.LOB_READONLY);&lt;br /&gt;
 15     DBMS_LOB.OPEN(v_source_locator2, DBMS_LOB.LOB_READONLY);&lt;br /&gt;
 16     DBMS_LOB.OPEN(v_dest_blob, DBMS_LOB.LOB_READWRITE);&lt;br /&gt;
 17     DBMS_LOB.OPEN(v_dest_clob, DBMS_LOB.LOB_READWRITE);&lt;br /&gt;
 18&lt;br /&gt;
 19     DBMS_OUTPUT.PUT_LINE(&amp;quot;Length of the BLOB file is: &amp;quot;||DBMS_LOB.GETLENGTH(v_source_locator1));&lt;br /&gt;
 20     DBMS_OUTPUT.PUT_LINE(&amp;quot;Length of the CLOB file is: &amp;quot;||DBMS_LOB.GETLENGTH(v_source_locator2));&lt;br /&gt;
 21     DBMS_OUTPUT.PUT_LINE(&amp;quot;Size of BLOB pre-load: &amp;quot;||DBMS_LOB.GETLENGTH(v_dest_blob));&lt;br /&gt;
 22     DBMS_OUTPUT.PUT_LINE(&amp;quot;Size of CLOB pre-load: &amp;quot;||DBMS_LOB.GETLENGTH(v_dest_clob));&lt;br /&gt;
 23&lt;br /&gt;
 24&lt;br /&gt;
 25     &lt;br /&gt;
 26     DBMS_LOB.CLOSE(v_source_locator1);&lt;br /&gt;
 27     DBMS_LOB.CLOSE(v_source_locator2);&lt;br /&gt;
 28     DBMS_LOB.CLOSE(v_dest_blob);&lt;br /&gt;
 29     DBMS_LOB.CLOSE(v_dest_clob);&lt;br /&gt;
 30&lt;br /&gt;
 31  EXCEPTION&lt;br /&gt;
 32     WHEN OTHERS&lt;br /&gt;
 33     THEN&lt;br /&gt;
 34        DBMS_OUTPUT.PUT_LINE(SQLERRM);&lt;br /&gt;
 35&lt;br /&gt;
 36        DBMS_LOB.CLOSE(v_source_locator1);&lt;br /&gt;
 37        DBMS_LOB.CLOSE(v_source_locator2);&lt;br /&gt;
 38        DBMS_LOB.CLOSE(v_dest_blob);&lt;br /&gt;
 39        DBMS_LOB.CLOSE(v_dest_clob);&lt;br /&gt;
 40&lt;br /&gt;
 41  END;&lt;br /&gt;
 42  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; PROMPT ** SELECT of the description column&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET LONG 64000&lt;br /&gt;
SQL&amp;gt; SELECT description&lt;br /&gt;
  2  FROM book&lt;br /&gt;
  3  WHERE id = 1;&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table book;&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;
==Use dbms_lob.compare to compare==&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        c1 clob := &amp;quot;chris&amp;quot;;&lt;br /&gt;
  3        c2 clob := &amp;quot;sean&amp;quot;;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5        dbms_output.put_line(dbms_lob.rupare( c1, c2 ) );&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
-1&lt;br /&gt;
PL/SQL procedure successfully completed.&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 dbms_lob.compare to compare clob type value with offset==&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        c1 clob := &amp;quot;chris&amp;quot;;&lt;br /&gt;
  3        c2 clob := &amp;quot;sean&amp;quot;;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5        dbms_output.put_line(dbms_lob.rupare( c1, c2, 1, 5, 1 ) );&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
0&lt;br /&gt;
PL/SQL procedure successfully completed.&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 dbms_lob for load clob data from 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;&lt;br /&gt;
SQL&amp;gt; create or replace directory dir1   as &amp;quot;c:\temp\&amp;quot;;&lt;br /&gt;
Directory created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace directory &amp;quot;dir2&amp;quot; as &amp;quot;c:\temp\&amp;quot;;&lt;br /&gt;
Directory created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table demo&lt;br /&gt;
  2  ( id        int primary key,&lt;br /&gt;
  3    theClob   clob&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      l_clob    clob;&lt;br /&gt;
  3      l_bfile   bfile;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5      insert into demo values ( 1, empty_clob() )&lt;br /&gt;
  6      returning theclob into l_clob;&lt;br /&gt;
  7&lt;br /&gt;
  8      l_bfile := bfilename( &amp;quot;DIR1&amp;quot;, &amp;quot;test.txt&amp;quot; );&lt;br /&gt;
  9      dbms_lob.fileopen( l_bfile );&lt;br /&gt;
 10&lt;br /&gt;
 11      dbms_lob.loadfromfile( l_clob, l_bfile,dbms_lob.getlength( l_bfile ) );&lt;br /&gt;
 12&lt;br /&gt;
 13      dbms_lob.fileclose( l_bfile );&lt;br /&gt;
 14  end;&lt;br /&gt;
 15  /&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 9&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select dbms_lob.getlength(theClob), theClob from demo&lt;br /&gt;
  2  /&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table demo;&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;
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 dbms_lob.getchunksize to get the clob column size==&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 my_lob(&lt;br /&gt;
  2        id number,&lt;br /&gt;
  3        c clob )&lt;br /&gt;
  4      /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into my_lob values ( 1, empty_clob() );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select dbms_lob.getchunksize( c ) from my_lob;&lt;br /&gt;
DBMS_LOB.GETCHUNKSIZE(C)&lt;br /&gt;
------------------------&lt;br /&gt;
                    8132&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table my_lob;&lt;br /&gt;
Table dropped.&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 DBMS_LOB.GETLENGTH to get the length of a clob type variable==&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; CREATE TABLE nmyTable (&lt;br /&gt;
  2    id INTEGER PRIMARY KEY,&lt;br /&gt;
  3    nclobData NCLOB&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable (&lt;br /&gt;
  2    id INTEGER PRIMARY KEY,&lt;br /&gt;
  3    clobData CLOB&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER before_myTable_update&lt;br /&gt;
  2  BEFORE UPDATE&lt;br /&gt;
  3  ON myTable&lt;br /&gt;
  4  FOR EACH ROW&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable changed&amp;quot;);&lt;br /&gt;
  7    DBMS_OUTPUT.PUT_LINE(&amp;quot;Length = &amp;quot; || DBMS_LOB.GETLENGTH(:new.clobData));&lt;br /&gt;
  8  END before_myTable_update;&lt;br /&gt;
  9  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table nmyTable;&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;
==Use dbms_lob.writeappend to append value to clob type value==&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_clob clob := &amp;quot;12345&amp;quot;;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4        dbms_lob.writeappend( l_clob, 5, &amp;quot;ABCDEFGHIJK&amp;quot; );&lt;br /&gt;
  5        dbms_output.put_line( l_clob );&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
12345ABCDE&lt;br /&gt;
PL/SQL procedure successfully completed.&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>