SET PATH 语句
SET PATH 语句更改 CURRENT PATH 专用寄存器的值。
此语句不受事务控制。
调用
此语句可嵌入应用程序中或者以交互方式发出。 它是可动态准备的可执行语句。
权限
不需要执行任何操作。
语法
描述
- schema-name
- 此单部分名称标识应用程序服务器上存在的模式。 在设置路径时,不会验证模式是否存在。 例如,如果 schema-name 拼写错误,那么将不会捕获该错误,并且可能会影响后续 SQL 的操作方式。
- 系统 PATH
- 此值与指定模式名称 "SYSIBM" , "SYSFUN" , "SYSPROC" , "SYSIBMADM"相同。
- 用户
- USER 专用寄存器的值。
- CURRENT PATH
- 执行此语句之前 CURRENT PATH 专用寄存器的值。
- CURRENT PACKAGE PATH
- CURRENT PACKAGE PATH 专用寄存器的值。
- host-variable
- CHAR 或 VARCHAR 类型的变量。 主变量 的内容长度不得超过 128 字节 (SQLSTATE 42815)。 它不能设置为空。 如果 host-variable 具有关联的指示符变量,那么该指示符变量的值不得指示空值 (SQLSTATE 42815)。
主机变量 的字符必须左对齐。 当使用 主变量指定 schema-name 时,必须以预期的大小写指定所有字符,因为没有转换为大写字符。
- string-constant
- 最大长度为 128 字节的字符串常量。
规则
- 模式名称在 SQL 路径中不能出现多次 (SQLSTATE 42732)。
- 不能在 SQL 路径中指定模式名SY溅射 (SQLSTATE 42815)。
- 可以指定的模式数受 CURRENT PATH 专用寄存器的总长度限制。 通过采用指定的每个模式名并除去尾部空格,使用双引号定界,必要时在模式名中使用双引号,然后用逗号分隔每个模式名来构建专用寄存器字符串。 生成的字符串的长度不能超过 2048 字节 (SQLSTATE 42907)。
注意
- CURRENT PATH 专用寄存器的初始值为 "SYSIBM" , "SYSFUN" , "SYSPROC" , "SYSIBMADM" , "X" ,其中 X 是 USER 专用寄存器的值。
- 不需要指定模式 SYSIBM。 如果它未包含在 SQL 路径中,那么将隐式假定为第一个模式 (在这种情况下,它未包含在 CURRENT PATH 专用寄存器中)。
- CURRENT PATH 专用寄存器指定用于解析动态 SQL 语句中的函数名,过程名,数据类型名,全局变量名和模块对象名的 SQL 路径。 FUNCPATH 绑定选项指定要用于解析静态 SQL 语句中的函数名,过程名,数据类型名,全局变量名和模块对象名的 SQL 路径。
- 语法替代方法: 为了与先前版本的 Db2® 和其他数据库产品兼容,支持以下语法替代方法。 这些备用项是非标准的,不应使用。
- 可以指定 CURRENT FUNCTION PATH 来代替 CURRENT PATH
示例
- 示例 1: 以下语句设置 CURRENT PATH 专用寄存器。
SET PATH = FERMAT, "McDrw #8", SYSIBM - 示例 2: 以下示例将 CURRENT PATH 专用寄存器的当前值检索到名为 CURPATH 的主变量中。
该值将为 "FERMAT" , "McDrw #8" , "SYSIBM" (如果由先前示例设置)。EXEC SQL VALUES (CURRENT PATH) INTO :CURPATH;
