`

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

阅读更多

使用 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 数据。



坏男孩 2007-08-18 15:07 发表评论
分享到:
评论

相关推荐

    DELPHI BLOB存取(ADO,ODAC)

    DELPHI 實現 BLOB存取,兩種數據庫操作方式ADO&ODAC

    Oracle控件ODAC的下载安装及使用

    Oracle控件ODAC的下载安装及使用 安装环境:ODAC 9.3 for Delphi 7 编译及安装: 1、打开并编译安装Source\Delphi7\dac70.dpk 2、打开并编译安装Source\Delphi7\dacvcl70.dpk 3、打开并编译安装Source\Delphi7\...

    ODAC应用技巧

    ODAC 标准方式来连接 Oracle 数据库服务器。这是使用第三方开发语言设计 Oracle 应用程序最常用的方法。

    ODAC 9.2 XE5

    ODAC 直接使用 Oracle 调用接口 OCI OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API) OCI 通过一个动态运行库(ORA DLL)...

    odac 10 for xe 10.3

    OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及...

    ODAC安装及说明.zip

    Oracle控件ODAC的下载安装及使用 安装环境:ODAC 9.3 for Delphi 7 编译及安装: 1、打开并编译安装Source\Delphi7\dac70.dpk 2、打开并编译安装Source\Delphi7\dacvcl70.dpk 3、打开并编译安装Source\Delphi7\...

    ODAC 9.2 XE4

    ODAC 直接使用 Oracle 调用接口 OCI OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API) OCI 通过一个动态运行库(ORA DLL)...

    ODAC1120320Xcopy_x64及安装说明

    用于oracle的ODAC安装,附件中有安装说明

    Devart ODAC Pro 10.1.5 D6-XE10.2 Full Source

    OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及...

    ODAC 9.2 D7

    ODAC 直接使用 Oracle 调用接口 OCI OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API) OCI 通过一个动态运行库(ORA DLL)...

    (20200914)odac_11.3.2_d27pro.exe

    OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及...

    (20200914)odac_11.3.2_d26pro.exe

    OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及...

    ODAC安装手册及图解

    ODAC安装及连接VS2010连接数据库图解

    Oracle远程连接环境配置文件 ODAC1120320Xcopy_x64环境及配置文档,亲测有效,项目已使用。

    Oracle远程连接环境配置文件 ODAC1120320Xcopy_x64环境及配置文档,亲测有效,项目已使用。

    Oracle 数据存取组件(ODAC) 库

    Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件。它们用来存取Oracle关系数据库系统。与BDE类似, ODAC 也是一种可供选择的处理数据的方法之一。

    ODAC控件附有DEMO及源代码.rar

    ODAC控件附有DEMO及源代码.rar

    ODAC.9.0.1 ODAC.9.0.1 Full Source

    ODAC.9.0.1 Full Source

    odac64位安装包

    odac64位安装下载,Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件。它们用来存取Oracle关系数据库系统。与BDE类似, ODAC 也是一种可供选择的处理数据的方法之一。

    ODAC112040Xcopy_64bit.zip

    ODAC安装包 附带详细文档

    ODAC122010Xcopy_x64

    dotnet 的odac组件 ODAC122010Xcopy_x64 instantclient_12_2 oledb odp.net

Global site tag (gtag.js) - Google Analytics