FILETOBLOB 函数为存储在指定的操作系统文件中的数据创建 BLOB 值。类似地,FILETOCLOB 函数为存储在操作系统文件中的数据值创建 CLOB 值。
这些函数从 ONCONFIG 文件或从 sbspace 获取系统特定的存储特征。要获取更多关于系统指定的存储缺省值的信息,请参阅 GBase 8s 管理员指南。
FILETOBLOB 返回一个指向新的 BLOB 值的句柄值(指针)。类似地,FILETOCLOB 返回一个指向新的 CLOB 值的句柄值。两个参数都不实际地将智能大对象值复制到数据库列内。您必须将 BLOB 或 CLOB 值指定到适当的列。
当 FILETOCLOB 函数将文件从客户端或服务器计算机复制到数据库时,它执行任何可能需要的代码集转换。
INSERT INTO candidate (cand_num, cand_lname, resume) VALUES (2, 'Smith', FILETOCLOB('smith.rsm', 'client'));
在前面的示例中,FILETOCLOB 函数读取客户端计算机上当前目录中的 smith.rsm 文件,并返回一指向包含此文件中的数据的 CLOB 值的句柄值。由于 FILETOCLOB 函数未指定表和列名称,此新的 CLOB 值有系统指定的存储特征。然后,该 INSERT 语句将此 CLOB 值指定给 candidate 表中的 resume 列。
INSERT INTO rdb@:election2008 (cand_pic) VALUES (FILETOBLOB('C:\tmp\photos.xxx', 'server', 'candidate', 'cand_photo'));
在前面的示例中,FILETOBLOB 函数读取本地数据库服务器上指定的目录中的 photos.xxx 文件,并返回指向此包含文件中的数据的 BLOB 值的句柄值。然后,该 INSERT 语句将此 BLOB 值指定到本地数据库服务器的 rdb 数据库中的 election2008 表中的 cand_pic 列。此新的 BLOB 值有本地数据库中的 candidate 表中的 cand_photo 列的存储特征。
INSERT INTO rdb1:election2008 (cand_pic) VALUES (FILETOBLOB('C:\tmp\photos.xxx', 'server', 'rdb2:election96', 'cand_pix'));
当您以远程数据库和远程数据库服务器的名称限定 FILETOBLOB 或 FILETOCLOB 函数时,pathname 和 file destination 成为对远程数据库服务器的相对值。
INSERT INTO rdb@rserv:election (cand_pic) VALUES (rdb@rserv:FILETOBLOB('C:\tmp\photos.xxx', 'server'));
INSERT INTO rdb@rserv:election (cand_pic) VALUES (rdb@rserv:FILETOBLOB('photos.xxx', 'client'));