主题: |
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. |
PL/SQL - Version: 10.2.0.3
Information in this document applies to any platform.
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.
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中只能使用SQL的DML(Data Manipulation Language)部分,而不能直接使用DDL(Data Definition Language)部分,如创建表(CREATE TABLE)等操作。如果需要在PL/SQL中执行DDL操作,则需要通过...
PL/SQL,全称是Procedural Language/Structured Query Language,是Oracle数据库提供的一种结合了SQL语言和过程式编程的编程环境。它扩展了SQL的功能,使得开发人员能够编写复杂的数据库应用程序,处理事务、实现...
- PL/SQL支持几乎所有的SQL标准语句,包括SELECT、INSERT、UPDATE、DELETE等用于数据查询和修改的命令,以及DDL(Data Definition Language)用于创建、修改和删除数据库对象的语句。 3. **运行PL/SQL程序**: - ...
### PL/SQL编程 #### PL/SQL程序设计简介 **PL/SQL**(Procedure Language for SQL)是一种专门针对Oracle数据库设计的过程化语言。它结合了SQL的数据操纵能力与传统过程化语言的流程控制功能,使得开发者能够编写...
Oracle PL/SQL编程是Oracle数据库系统中的一个关键组成部分,它是一种强大的过程化编程语言,用于在数据库中执行复杂的逻辑和操作。本指南旨在为初学者提供一个基础的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,全称是Procedural Language/Structured Query Language,是Oracle数据库提供的一种过程化编程语言,结合了SQL查询语言的功能,使得开发者能够编写更复杂的数据库应用程序。它主要用于管理和控制Oracle数据库...
3. **数据类型**:PL/SQL支持多种内置数据类型,如NUMBER(数值型)、VARCHAR2(可变长度字符)、DATE(日期时间)、CLOB(大对象,字符数据)和BLOB(大对象,二进制数据)等。 4. **游标**:在PL/SQL中,游标用于...
### PL/SQL编程详细文档资料 #### 第一章:PL/SQL概述 ##### §1.1 PL/SQL程序设计 PL/SQL(Procedure Language / SQL)是一种专为Oracle数据库设计的高级程序设计语言。它结合了SQL的强大数据处理能力与传统程序...
这是因为 WebLogic 服务器为了更好地管理和操作数据库连接,会使用自己的包装类 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 来表示 CLOB 类型的数据,而不是直接使用 Oracle 提供的标准 `oracle.sql.CLOB` 类。...
PL/SQL,全称Procedural Language/Structured Query Language,是一种专门为Oracle数据库系统设计的、融合了SQL(Structured Query Language)的程序设计语言。它的主要目的是为了方便和高效地操作和管理Oracle...
**PL/SQL 程序设计** PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库系统中的一种过程化编程语言,它结合了SQL的查询能力与传统的编程语言特性,使得数据库开发者能够创建复杂的业务逻辑...
PL/SQL 支持多种数据类型之间的转换,例如 TO_CHAR 和 TO_NUMBER 函数。 **2.5 运算符和表达式** - **2.5.1 关系运算符**: 如 =、、<、>。 - **2.5.2 一般运算符**: 如 +、-、*、/。 - **2.5.3 逻辑运算符**: 如 ...
- **数据类型**:PL/SQL提供了更丰富的数据类型,如NUMBER、BOOLEAN、DATE、TIMESTAMP、LOB等,其中LOB(Large Object)类型用于存储大容量数据,包括BLOB(二进制大对象)、CLOB(字符大对象)、NCLOB(Unicode字符...
Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的功能结合起来,为数据库管理和开发提供了丰富的工具。在Oracle环境中,PL/SQL是构建高效、可靠应用程序的关键组件。以下是对"Oracle PL/SQL常用47个工具...
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**是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据操纵能力与传统编程语言的流程控制功能,使得开发者能够在数据库环境中编写更为复杂的...
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(Procedural Language for SQL)是Oracle数据库的标准编程语言,它允许用户在数据库环境中编写过程化的SQL代码。通过结合SQL的数据操作能力与传统过程化语言的控制结构,PL/SQL能够实现复杂的数据处理任务,...
Oracle PL/SQL是一种在Oracle数据库环境中使用的结构化查询语言(SQL)的扩展,它结合了SQL的查询功能和过程编程语言的特点,使得开发者能够编写复杂的数据库应用程序。在本教程中,我们将深入探讨PL/SQL的基础知识...