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

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 导入和导出数据

 

访问客户端计算机上的数据

SQL Anywhere 允许使用 SQL 语句和函数从客户端计算机上的文件中装载数据以及将数据卸载到其中,而无需将文件复制到数据库服务器计算机。为此,数据库服务器使用命令序列通讯协议 (CmdSeq) 文件处理程序启动传送。数据库服务器接收到来自客户端应用程序的请求(即需要将数据传入或传出客户端计算机)后,在发送响应之前,调用 CmdSeq 文件处理程序。文件处理程序支持随时从客户端同时和交替传送多个文件。例如,当客户端应用程序执行的语句需要时,数据库服务器启动同时传送多个文件。

使用 CmdSeq 文件处理程序实现客户端数据的传送意味着应用程序不需要任何新的专用代码,并且可以使用下面列出的 SQL 组件立即从功能中受益:

  • READ_CLIENT_FILE 函数   READ_CLIENT_FILE 函数从客户端计算机上的指定文件中读取数据,并返回表示文件内容的 LONG BINARY 值。此函数可用于 SQL 代码中可使用 BLOB 的任何地方。READ_CLIENT_FILE 函数返回的数据尽可能不在内存中进行实例化,除非语句显式导致实例化发生。例如,LOAD TABLE 语句从客户端文件中流出数据,而不对其进行实例化。将 READ_CLIENT_FILE 函数返回的值分配到连接变量导致数据库服务器检索和实例化客户端文件的内容。请参见READ_CLIENT_FILE 函数 [String]

  • WRITE_CLIENT_FILE 函数   WRITE_CLIENT_FILE 函数将数据写入客户端计算机上的指定文件中。请参见WRITE_CLIENT_FILE 函数 [String]

  • READCLIENTFILE 权限   READCLIENTFILE 权限允许从客户端计算机上的文件中读取。请参见READCLIENTFILE 特权

  • WRITECLIENTFILE 权限   WRITECLIENTFILE 权限允许向客户端计算机上的文件中写入。请参见WRITECLIENTFILE 特权

  • LOAD TABLE ...USING CLIENT FILE 子句   USING CLIENT FILE 子句允许使用位于客户端计算机上的文件中的数据装载表。例如,LOAD TABLE ... USING CLIENT FILE 'my-file.txt'; 会从客户端计算机装载名为 my-file.txt 的文件。请参见LOAD TABLE 语句

  • LOAD TABLE ...USING VALUE 子句   USING VALUE 子句允许将 BLOB 表达式指定为一个值。BLOB 表达式可使用 READ_CLIENT_FILE 函数从客户端计算机上的文件中装载 BLOB。例如,LOAD TABLE ... USING VALUE READ_CLIENT_FILE( 'my-file' ),其中 my-file 是客户端计算机上的文件。请参见LOAD TABLE 语句

  • UNLOAD TABLE ...INTO CLIENT FILE 子句   INTO CLIENT FILE 子句允许指定客户端计算机上存放所卸载数据的文件。请参见UNLOAD 语句

  • UNLOAD TABLE ...INTO VARIABLE 子句   INTO VARIABLE 子句允许指定将数据卸载到其中的变量。请参见UNLOAD 语句

  • read_client_file 和 write_client_file 安全功能   read_client_file 和 write_client_file 安全功能控制使用某些语句,这些语句会导致从客户端文件中读取或向其写入。请参见指定受保护的功能-sf dbeng12/dbsrv12 服务器选项

请注意,为了允许在过程、函数或其它间接语句中从客户端文件读取和写入,必须注册回调函数。调用回调函数可确认应用程序允许客户端传输其未直接请求的内容。

 另请参见

客户端数据安全性
装载客户端数据时规划恢复