SET PATH 语句

SET PATH 语句更改 CURRENT PATH 专用寄存器的值。

此语句不受事务控制。

调用

此语句可嵌入应用程序中或者以交互方式发出。 它是可动态准备的可执行语句。

权限

不需要执行任何操作。

语法

Read syntax diagramSkip visual syntax diagramSETCURRENTPATHCURRENT_PATH=,schema-nameSYSTEM PATHUSERCURRENT PATHCURRENT_PATHCURRENT PACKAGE PATHhost-variablestring-constant

描述

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 的主变量中。
       EXEC SQL VALUES (CURRENT PATH) INTO :CURPATH;
    该值将为 "FERMAT" , "McDrw #8" , "SYSIBM" (如果由先前示例设置)。