使用 BLOB 及 CLOB 数据类型
转:http://blog.csdn.net/nxyc_twz/archive/2004/06/16/16061.aspx
ODAC 组件支持 Oracle 8 的 BLOB 和 CLOB 数据类型。你可以使用 TOraQuery 组件来获取 LOB 字段的值,使用同样的方法,你也可以获取 LONG 或 LONG ROW 字段。 当你需要使用 SQL DML 及 PL/SQL 语句存取这些字段时,你就会发现 LOB 数据类型的用法有明显的不同。
BLOB 和 CLOB 数据类型通过 LOB 定位器(指定数据地址) 存储在表列中;实际的 BLOB 和 CLOB 数据存储在独立的表空间中。与之不同的是,LONG 或 LONG RAW 类型存储在数据库中,表中存放着它们的实际值。
当存取 LOB 列时,返回的是定位器,而不像 LONG 或 LONG RAW 数据类型那样返回它的实际值。
例如,分析这个表的定义:
CREATE TABLE ClobTable (
Id NUMBER,
Name VARCHAR2(30),
Value CLOB
)
如果我们不通过值参数初始化 LOB 定位器, Oracle 将不允许使用下面的语句来更新数据表:
UPDATE ClobTable
SET
Name = :Name,
Value = :Value
WHERE
Id = :Id
要初始化 LOB 定位器,你必须使用 EMPTY_BLOB 或 EMPTY_CLOB Oracle 函数。要返回初始化后的定位器,应在同样的语句中使用 RETURNING 子句。例如:
UPDATE ClobTable
SET
Name = :Name,
Value = EMPTY_CLOB()
WHERE
Id = :Id
RETURNING
Value
INTO
:Value
ODAC 写 LOB 数据到 Oracle 且返回初始值字段,需使用:值参数。
存储过程允许自动初始化 LOB 值,方法如下:
CREATE OR REPLACE
PROCEDURE ClobTableUpdate (p_Id NUMBER, p_Name VARCHAR2,
p_Value OUT CLOB)
is
begin
UPDATE ClobTable
SET
Name = p_Name,
Value = EMPTY_CLOB()
WHERE
Id = p_Id
RETURNING
Value
INTO
p_Value;
end;
注意:值参数被声明为 OUT。同时,设置 LOB 数据类型的参数的 ParamType 属性为 ptInput ,且指定它到所需的数据前来实际调用存储过程。我们可以这样调用前面声明的存储过程:
OraStroredProc1.StoredProcName := 'ClobTableUpdate';
OraStroredProc1.Prepare;
OraStroredProc1.ParamByName('p_Id').AsInteger := Id;
OraStroredProc1.ParamByName('p_Name').AsString := Name;
OraStroredProc1.ParamByName('Value').ParamType := ptInput;
OraStroredProc1.ParamByName('Value').AsCLOBLocator.
LoadFromFile(FileName);
OraStroredProc1.Execute;
对 ODAC 来说,在 LOB 操作中使用 ParamType 属性是非常重要的。如果 ParamType 是 ptInput , ODAC 写数据到服务器,如果 ParamType 是 ptOutput,它则读取数据。
你可以使用 LOB 参数的 dtBlob 和 dtMemo 数据类型来编写普通的 DML 语句。在这种情况下, Oracle 自动将 LONG 和 LONG ROW 类型的值转换为 CLOB 或 BLOB 数据。
分享到:
相关推荐
BLOB(Binary Large Object)就是用于存储这类数据的数据类型。在Delphi编程环境下,我们可以使用两种主要的数据访问技术来操作BLOB字段:ADO(ActiveX Data Objects)和ODAC(Object Data Access Components)。...
在数据库编程领域,CLOB(Character Large Object)和BLOB(Binary Large Object)是用于存储大量文本和二进制数据的数据类型。在DELPHI中,处理这些大型对象时需要特殊的技术和策略。本篇文章将深入探讨DELPHI中...
ODAC组件支持Oracle 8中的BLOB和CLOB数据类型。可以通过`TOraQuery`组件来读取和操作LOB字段。与LONG或LONGRAW字段相比,BLOB和CLOB数据类型通过LOB定位器存储在表列中,实际的数据则存储在独立的表空间中。 #### ...
ODAC还提供了对BLOB、CLOB等大对象数据类型的处理,使得处理多媒体数据变得简单。 ODAC625的一大优点是其高度优化的性能。由于它直接与Oracle的Native Client接口通信,避免了ADO的中间层开销,因此在处理大量数据...
此外,ODAC还支持Oracle的一些高级特性,如PL/SQL过程和函数调用、游标、触发器、存储过程、BLOB和CLOB数据类型等。它还提供了数据转换服务,可以处理Oracle的特定数据类型,并且与Delphi的数据绑定机制紧密结合,...
同时,ODAC支持最新的Oracle数据库特性,包括PL/SQL过程、触发器、游标、BLOB、CLOB等复杂数据类型的处理,以及Oracle的高级特性如LOB、BFILE、REF CURSOR等。 在ODAC组件库中,包含了一系列关键组件,例如...
- 全面的功能:支持 PL/SQL 过程、游标、触发器、BLOB、CLOB 等数据类型。 - 易于使用:直观的组件模型和 Delphi 风格的事件处理方式,使得开发更加简单。 - 跨平台:不仅支持 Windows,还支持其他 FireMonkey 支持...
6. **丰富的功能集**:ODAC支持各种Oracle特定的功能,如PL/SQL块执行、BLOB/CLOB处理、触发器、存储过程、游标、事务管理等。 7. **错误处理和调试**:ODAC提供了详细的错误信息和事件处理机制,方便开发者定位并...
2. 支持Oracle高级特性:包括PL/SQL块、BLOB、CLOB、BFILE、XMLType、REF CURSOR等复杂数据类型,以及触发器、存储过程等功能。 3. 异常处理:ODAC封装了Oracle数据库的错误处理,提供了易于使用的异常类,简化了...
2. 完全支持Oracle特性:ODAC支持Oracle的高级特性,如PL/SQL、BLOB、CLOB、BFILE、REF CURSOR、触发器、存储过程、游标、事务管理等。 3. 强大的组件集:ODAC包含一系列的VCL和FireMonkey (FMX)组件,如...
- **全面的 Oracle 功能**:支持 Oracle 的高级特性,如 PL/SQL 存储过程、触发器、游标、BLOB/CLOB 数据类型等。 - **易用性**:通过直观的组件接口,开发者可以轻松创建和管理数据库连接、查询、表和视图。 - *...
3. **支持最新Oracle特性**:ODAC不断更新,以支持Oracle数据库的最新特性,如PL/SQL、BLOB、CLOB、XML类型等,以及Oracle的高级特性如物化视图、分区表等。 4. **事务处理**:通过TOracleTransaction组件,ODAC...
记住,ODAC 提供的功能远不止这些,还包括事务处理、批处理、游标、BLOB 和 CLOB 支持等高级特性,这些都是构建高效数据库应用的关键组成部分。在实际项目中,根据需求灵活运用这些工具,能够极大地提高开发效率和...
7. **Native Oracle Data Types Support**:支持 Oracle 的所有原生数据类型,包括 NUMBER、DATE、LONG RAW 等。 8. **High Performance and Low Level Data Access**:ODAC 直接与 Oracle 的客户端库交互,减少了...
5. **BLOB和CLOB支持**:对于大型对象(BLOBs和CLOBs),ODAC提供了专门的组件来处理,如TBlobField,可以方便地读写二进制和文本大对象。 6. **批处理操作**:ODAC允许开发人员进行批量插入、更新和删除操作,提高...
它支持多种Oracle特性,如PL/SQL、BLOB、CLOB、NCLOB、BFILE等数据类型,以及游标、存储过程、触发器等。 2. **版本9.4.14**: 这个版本可能包含了对9.4.14版Oracle数据库的优化和支持,同时也可能修复了之前版本...
2. **完整支持 Oracle 特性**:包括事务管理、游标、触发器、PL/SQL、BLOB、CLOB 等复杂数据类型。 3. **异步操作**:ODAC 支持非阻塞模式,允许在处理数据库操作的同时进行其他任务,提高应用程序响应速度。 4. **...
3. **Oracle Types**: ODAC支持Oracle特有的数据类型,如BFILE、CLOB、NCLOB、BLOB、XMLType等,使得.NET应用程序可以直接处理这些复杂数据类型。 4. **Oracle Data Provider for .NET (ODP.NET)**: ODP.NET是...
1. **全面的Oracle支持**:ODAC提供了对Oracle数据库所有主要特性的支持,包括PL/SQL过程、游标、触发器、包、BLOB、CLOB、NCLOB等数据类型。 2. **高性能**:ODAC使用原生的Oracle客户端库(如oci.dll),直接与...
10. **高级特性**: 包括PL/SQL支持、游标处理、BLOB和CLOB处理、触发器和存储过程调用、分布式事务处理、Oracle Advanced Queuing (AQ) 支持等。 通过ODAC,开发者可以轻松实现Oracle数据库的CRUD(创建、读取、...