Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 系统对象 » 系统过程 » 按字母顺排序的系统过程列表

 

xp_write_file 系统过程

从 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)。