WEB开发网
开发学院数据库Oracle ODAC应用技巧(二)使用BLOB及CLOB数据类型 阅读

ODAC应用技巧(二)使用BLOB及CLOB数据类型

 2010-06-25 16:11:04 来源:WEB开发网   
核心提示:ODAC 组件支持 Oracle 8 的 BLOB 和 CLOB 数据类型,你可以使用 TOraQuery 组件来获取 LOB 字段的值,ODAC应用技巧(二)使用BLOB及CLOB数据类型,使用同样的方法,你也可以获取 LONG 或 LONG ROW 字段,例如:UPDATE ClobTableSETName = :

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;

1 2  下一页

Tags:ODAC 应用技巧 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接