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 函数返回的值分配到连接变量导致数据库服务器检索和实例化客户端文件的内容。
WRITE_CLIENT_FILE 函数 WRITE_CLIENT_FILE 函数将数据写入客户端计算机上的指定文件中。
LOAD TABLE ...USING CLIENT FILE 子句
USING CLIENT FILE 子句允许使用位于客户端计算机上的文件中的数据装载表。例如,LOAD TABLE ... USING CLIENT FILE 'my-file.txt';
会从客户端计算机装载名为 my-file.txt 的文件。
LOAD TABLE ...USING VALUE 子句
USING VALUE 子句允许将 BLOB 表达式指定为一个值。BLOB 表达式可使用 READ_CLIENT_FILE 函数从客户端计算机上的文件中装载 BLOB。例如,LOAD TABLE ... USING VALUE READ_CLIENT_FILE( 'my-file' )
,其中 my-file 是客户端计算机上的文件。
UNLOAD TABLE ...INTO CLIENT FILE 子句 INTO CLIENT FILE 子句允许指定客户端计算机上存放所卸载数据的文件。
UNLOAD TABLE ...INTO VARIABLE 子句 INTO VARIABLE 子句允许指定将数据卸载到其中的变量。
read_client_file 和 write_client_file 安全功能 read_client_file 和 write_client_file 安全功能控制使用某些语句,这些语句会导致从客户端文件中读取或向其写入。
请注意,为了允许在过程、函数或其它间接语句中从客户端文件读取和写入,必须注册回调函数。调用回调函数可确认应用程序允许客户端传输其未直接请求的内容。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |