#双引号

双引号是对标识符、密码定义和使用的扩展。使用双引号时,对标识符、密码定义将支持特殊字符、数字,并区分大小写。

双引号的使用位置(是否可出现在SELECT,FROM和WHERE后)和使用场景规则,及双引号内字符串的长度限制,由双引号限定的标识符和密码本身决定,与是否加双引号无关。

对象名称标识符对双引号的支持:表名,列名,视图名,序列名、同义词,函数名、存储过程名、触发器名、JOB名等。

别名标识符对双引号的支持:表别名,列别名,视图别名。

用户密码对双引号的支持:支持除双引号外的任意字符;不支持转义双引号,如"hhh^^\"hhh"。

YashanDB对双引号的实现规则如下:

  • 双引号内字符串长度限制在64字节以内,否则报错。
  • 遇到起始双引号时,一直检索到结束的双引号,保留内部的字符串不做处理;无结束双引号时报错。
  • 在DDL里,将保留大小写的字符串(双引号内的原始字符串)写入到元数据中。
  • 在DML里,按保留大小写的字符串(双引号内的原始字符串)跟元数据字符串进行大小写敏感比较。

下表为标识符中是否使用了双引号的不同处理规则:

字符类型 使用双引号 不使用双引号
大小写 将双引号内原始字符串与元数据字符串进行大小写敏感比较 转为大写后,与元数据字符串进行大小写敏感比较
特殊字符(在标识符文档中列出) 将双引号内原始字符串与元数据字符串对比 报错
数字 作为名称标识符处理 作为数字处理

其中,标识符作为名称时的大小写规则详见标识符文档。

下载文档
复制链接