从 SQL 语句将数据写入文件。
xp_write_file( filename, file_contents )
filename 使用此 LONG VARCHAR 参数指定文件名。
file_contents 使用此 LONG BINARY 参数指定要写入到文件中的内容。
此函数将 file_contents 写入 filename 文件。如果成功则返回 0,如果失败则返回非零值。
filename 值前面可以带有绝对或相对路径。如果 filename 前面带有相对路径,则文件名是相对于数据库服务器的当前工作目录的。如果文件已存在,其内容将被覆盖。
此函数可用于将长的二进制数据卸载到文件中。
CSCONVERT 函数还能够用来解决使用 xp_write_file 系统过程时遇到的字符集转换问题。请参见CSCONVERT 函数 [String]。
需要 DBA 权限
以下示例使用 xp_write_file 创建一个包含数据 123456 的文件 accountnum.txt:
CALL xp_write_file( 'accountnum.txt', '123456' ); |
以下示例查询示例数据库的 Contacts 表,然后为居住在新泽西的每个联系人创建一个文本文件。每个文本文件都使用联系人的名字 (GivenName)、姓氏 (Surname) 和字符串 .txt 的连接来命名(例如,Reeves_Scott.txt),并在单独行上包含联系人的街道地址 (Street)、城市 (City) 和州 (State)。
SELECT xp_write_file( Surname || '_' || GivenName || '.txt', Street || '\n' || City || '\n' || State ) FROM Contacts WHERE State = 'NJ'; |
以下示例使用 xp_write_file 为 Products 表中的每个产品创建一个图像文件 (JPG)。ID 列的每个值成为具有 Photo 列对应值内容的文件的文件名:
SELECT xp_write_file( ID || '.jpg' , Photo ) FROM Products; |
在上面示例中,ID 是具有 UNIQUE 约束的行。这对于确保文件不被后续行的内容覆盖非常重要。此外,必须指定适用于列中所存储的数据的文件扩展名。在本例中,Products.Photo 存储图像数据 (JPG)。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |