在使用 transfer table ... to 命令编写输出文件时,使用 sp_file_path 过程指定目录限制。
自版本 16.0 SP02 PL04 开始,不再允许 transfer table ... to 命令将输出文件写入到通过运行服务器可编写的任何目录中。相反,必须将输出文件写入到指定输出目录或其中一个子目录。目录限制应用服务器端,可按数据库进行修改。路径限制采用两种形式:
可使用 dtu path root 指定所有 tranfer table ... to 输出文件的所需文件根。如果未指定,则缺省设置为 $SYBASE/data。
可使用文件根 dtu path forbid 将特定路径指定为禁止。
sp_file_path <database>, <attr> [, <path>] [, <option>]
<database>
是在其中运行过程的数据库的名称。这有助于阻止意外更改。
<attr>
是 dtu path root 或 dtu path forbid 中的一个。这指定了哪些限制会受到影响。
<path>
是 <@attr> 的目标路径名。此路径可能包含环境变量 $SYBASE、$SYBASE_ASE、$SYBASE_OCS,服务器将在运行时对其进行转换。(Windows 注意:%SYBASE% 等也会被识别到。)
<option>
如果不指定选项,则缺省值为 insert。
在主目录中指定新 dtu path root:
sp_file_path 'master', 'dtu path root', '$SYBASE/data'
从目录 model 中移除 dtu path root:
sp_file_path 'model', 'dtu path root', NULL, 'delete'