智能大对象函数

数据库服务器提供了四个 SQL 函数,您可以从 SQL 语句中调用这些函数来导入和导出智能大对象。下表显示智能大对象函数。
表 1. 智能大对象的 SQL 函数
函数名称 用途
FILETOBLOB() 将文件复制到 BLOB 列中
FILETOCLOB() 将文件复制到 CLOB 列中
LOCOPY() 将 BLOB 或 CLOB 数据复制的另一个 BLOB 或 CLOB 列中
LOTOFILE() 将 BLOB 或 CLOB 数据复制到文件中

有关智能大对象函数的详细信息和语法,请参阅 GBase 8s SQL 指南:语法中的表达式段。

可以在 SELECT UPDATE 和 INSERT 语句中使用该表显示的任何函数。有关如何在 INSERT 和 UPDATE 语句中使用上述函数的示例,请参阅修改数据

假设您创建 inmatefbi_list 表,如下图所示。

图: 创建 inmate 和 fbi_list 表

CREATE TABLE inmate 
            (
            id_num   INT, 
            picture  BLOB,
            felony   CLOB
            );
            
            CREATE TABLE fbi_list 
            ( 
            id       INTEGER,
            mugshot  BLOB
            ) PUT mugshot IN (sbspace1);
以下 SELECT 语句使用 LOTOFILE() 函数将数据从 felony 列复制到位于客户机上的 felon_322.txt 文件中:
SELECT id_num, LOTOFILE(felony, 'felon_322.txt', 'client')
          FROM inmate
          WHERE id = 322;

LOTOFILE() 的第一个参数指定将从中导出数据的列的名称。第二个参数指定要将数据复制到其中的文件的名称。第三个参数指定目标文件是位于客户端计算机('client')或服务器计算机('server')上。

根据源文件是驻留在客户机还是服务器计算机上,下列规则可用来指定函数参数中文件名的路径:
  • 如果源文件驻留在服务器计算机上,那么必须指定文件的全路径名(不是与当前工作目录相对的路径名)。
  • 如果源文件驻留在客户端计算机上,那么可以指定文件的全路径名或相对路径名。