`
king_tt
  • 浏览: 2234184 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

How To Load CLOB Data from a File into a CLOB column using PL/SQL

 
阅读更多

主题:

How To Load CLOB Data from a File into a CLOB column using PL/SQL

文档ID:

437432.1

类型:

HOWTO

Modified Date:

02-OCT-2007

状态:

MODERATED

In this Document
Goal
Solution


This document is being delivered to you viaOracleSupport'sRapid Visibility(RaV) process, and therefore has not been subject to an independent technical review.

Applies to:

PL/SQL - Version: 10.2.0.3
Information in this document applies to any platform.

Goal

The following code demonstates how to load CLOB data (greater than 32 KBytes) from a file into a CLOB column.

The package DBMS_LOB is used to access a file stored on the operating system and load that data into a CLOB column.

The DBMS_LOB.LOADCLOBFROMFILE() procedure loads the contents of the BFILE into the CLOBcolumn usingDBMS_LOB.LOBMAXSIZE which loads until the end of the BFILE is reached.

Thismethodallows the data to be loaded up to the maximum size that the CLOB column can hold. Passing DBMS_LOB.LOBMAXSIZEcauses theprocedure to read the entire BFILE. This is a useful technique for reading the entire LOB without introspecting the size of the LOB.

Solution

CREATE OR REPLACE DIRECTORY workdir as '/tmp/laura'; --Change the directory

DROP TABLE test_clob;

CREATE TABLE test_clob (id NUMBER, col_clob CLOB);

INSERT INTO test_clob VALUES(1, EMPTY_CLOB());

CREATE OR REPLACE PROCEDURE file_to_clob IS
b_fil bfile := BFILENAME('WORKDIR', 'f.txt'); -- Ensure f.txt

exists
v_clob CLOB;
dest_offset NUMBER := 1;
source_offset NUMBER := 1;
src_csidNUMBER:=NLS_CHARSET_ID('UTF8');
lang_ctx INTEGER := DBMS_LOB.DEFAULT_LANG_CTX;
warn INTEGER;
BEGIN
-- Retrieve the lob locator
SELECT col_clob

INTO v_clob FROM test_clob WHERE id = 1 FOR UPDATE;

-- Open the target CLOB and the source BFILE
DBMS_LOB.OPEN(v_clob, DBMS_LOB.LOB_READWRITE);
DBMS_LOB.OPEN(b_fil, DBMS_LOB.FILE_READONLY);

-- Load the contents of the bfile into the CLOB column
DBMS_LOB.LOADCLOBFROMFILE(v_clob, b_fil,

DBMS_LOB.LOBMAXSIZE,
dest_offset,
source_offset,
src_csid,
lang_ctx, warn);

-- Check for the warning
IF warn = DBMS_LOB.WARN_INCONVERTIBLE_CHAR THEN
DBMS_OUTPUT.PUT_LINE('Some

Characters couldn''t be converted');
END IF;

-- Close the LOBs
DBMS_LOB.CLOSE(v_clob);
DBMS_LOB.CLOSE(b_fil);

END;
/


To test:

SQL>EXEC file_to_clob;

PL/SQL procedure successfully completed.

SQL> SELECT DBMS_LOB.GETLENGTH(col_clob) FROM test_clob;

DBMS_LOB.GETLENGTH(COL_CLOB)
----------------------------
121094

分享到:
评论

相关推荐

    PL/SQL编程基础知识

    需要注意的是,在PL/SQL中只能使用SQL的DML(Data Manipulation Language)部分,而不能直接使用DDL(Data Definition Language)部分,如创建表(CREATE TABLE)等操作。如果需要在PL/SQL中执行DDL操作,则需要通过...

    PL/SQL学习教程,附笔记

    PL/SQL,全称是Procedural Language/Structured Query Language,是Oracle数据库提供的一种结合了SQL语言和过程式编程的编程环境。它扩展了SQL的功能,使得开发人员能够编写复杂的数据库应用程序,处理事务、实现...

    PL/SQL程序设计

    - PL/SQL支持几乎所有的SQL标准语句,包括SELECT、INSERT、UPDATE、DELETE等用于数据查询和修改的命令,以及DDL(Data Definition Language)用于创建、修改和删除数据库对象的语句。 3. **运行PL/SQL程序**: - ...

    PL/SQL编程

    ### PL/SQL编程 #### PL/SQL程序设计简介 **PL/SQL**(Procedure Language for SQL)是一种专门针对Oracle数据库设计的过程化语言。它结合了SQL的数据操纵能力与传统过程化语言的流程控制功能,使得开发者能够编写...

    基本PL/SQL编程

    Oracle PL/SQL编程是Oracle数据库系统中的一个关键组成部分,它是一种强大的过程化编程语言,用于在数据库中执行复杂的逻辑和操作。本指南旨在为初学者提供一个基础的PL/SQL编程入门,帮助他们理解并掌握这个强大的...

    pl/sql学习基础

    §1.2.3 PL/SQL可用的SQL语句包括基本的SELECT、INSERT、UPDATE、DELETE,以及DCL(Data Control Language)如GRANT和REVOKE,DDL(Data Definition Language)如CREATE、ALTER和DROP等。此外,还可以使用事务控制...

    pl/sql基础教程

    PL/SQL,全称是Procedural Language/Structured Query Language,是Oracle数据库提供的一种过程化编程语言,结合了SQL查询语言的功能,使得开发者能够编写更复杂的数据库应用程序。它主要用于管理和控制Oracle数据库...

    pl/sql工具

    3. **数据类型**:PL/SQL支持多种内置数据类型,如NUMBER(数值型)、VARCHAR2(可变长度字符)、DATE(日期时间)、CLOB(大对象,字符数据)和BLOB(大对象,二进制数据)等。 4. **游标**:在PL/SQL中,游标用于...

    PL/SQL编程详细文档资料

    ### PL/SQL编程详细文档资料 #### 第一章:PL/SQL概述 ##### §1.1 PL/SQL程序设计 PL/SQL(Procedure Language / SQL)是一种专为Oracle数据库设计的高级程序设计语言。它结合了SQL的强大数据处理能力与传统程序...

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    这是因为 WebLogic 服务器为了更好地管理和操作数据库连接,会使用自己的包装类 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 来表示 CLOB 类型的数据,而不是直接使用 Oracle 提供的标准 `oracle.sql.CLOB` 类。...

    PL/SQL 程序设计及SQL语法

    PL/SQL,全称Procedural Language/Structured Query Language,是一种专门为Oracle数据库系统设计的、融合了SQL(Structured Query Language)的程序设计语言。它的主要目的是为了方便和高效地操作和管理Oracle...

    PL/SQL 程序设计

    **PL/SQL 程序设计** PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库系统中的一种过程化编程语言,它结合了SQL的查询能力与传统的编程语言特性,使得数据库开发者能够创建复杂的业务逻辑...

    绝对好的 oracle pl/sql 编程

    PL/SQL 支持多种数据类型之间的转换,例如 TO_CHAR 和 TO_NUMBER 函数。 **2.5 运算符和表达式** - **2.5.1 关系运算符**: 如 =、、<、>。 - **2.5.2 一般运算符**: 如 +、-、*、/。 - **2.5.3 逻辑运算符**: 如 ...

    pl/sql培训笔记

    - **数据类型**:PL/SQL提供了更丰富的数据类型,如NUMBER、BOOLEAN、DATE、TIMESTAMP、LOB等,其中LOB(Large Object)类型用于存储大容量数据,包括BLOB(二进制大对象)、CLOB(字符大对象)、NCLOB(Unicode字符...

    Oracle PL/SQL常用47个工具包

    Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的功能结合起来,为数据库管理和开发提供了丰富的工具。在Oracle环境中,PL/SQL是构建高效、可靠应用程序的关键组件。以下是对"Oracle PL/SQL常用47个工具...

    clob的保存和修改

    2. **PL/SQL**:在PL/SQL中,可以使用`DBMS_LOB`包中的函数来修改CLOB内容。例如,`DBMS_LOB.WRITE`可以写入新的数据。 ```sql DECLARE l_clob CLOB; BEGIN SELECT content INTO l_clob FROM my_table WHERE ...

    PL/SQL学习文件

    ### PL/SQL学习知识点梳理 #### 一、PL/SQL简介 - **PL/SQL**是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据操纵能力与传统编程语言的流程控制功能,使得开发者能够在数据库环境中编写更为复杂的...

    Oracle中CLOB类型文字处理代码

    INSERT INTO my_table (id, clob_data) VALUES (1, TO_CLOB('大量文本数据')); ``` 4. 查询CLOB数据: - 使用`DBMS_LOB.substr()`函数可以获取CLOB的一部分或全部内容。 ```sql SELECT DBMS_LOB.substr(clob_...

    PL/SQL 报表的开发流程及html 格式的输出方法

    PL/SQL(Procedural Language for SQL)是Oracle数据库的标准编程语言,它允许用户在数据库环境中编写过程化的SQL代码。通过结合SQL的数据操作能力与传统过程化语言的控制结构,PL/SQL能够实现复杂的数据处理任务,...

    Oracle PL SQL语言基础

    Oracle PL/SQL是一种在Oracle数据库环境中使用的结构化查询语言(SQL)的扩展,它结合了SQL的查询功能和过程编程语言的特点,使得开发者能够编写复杂的数据库应用程序。在本教程中,我们将深入探讨PL/SQL的基础知识...

Global site tag (gtag.js) - Google Analytics