STRING 类型

STRING
STRING
类型用于表示长度大于或等于 0 的所有字符序列。该类型可以存储最大为 16MB 的文本数据。在批量、实时导入数据时,会对字段进行长度校验。如果你在导入数据时遇到超过16MB的数据,可以通过修改表的属性来调整字符串长度的限制,例如将
STRING
STRING
长度设置为32MB:

ALTER TABLE table_name SET PROPERTIES("cz.storage.write.max.string.bytes"="33554432");

语法

STRING TEXT

TEXT
TEXT
STRING
STRING
的别名,用于兼容其他数据库的迁移脚本。别名在解析时立即转换为规范类型,详见类型别名

字面量语法:

[r]'c [ ... ]' [r]"c [ ... ]"

  • 字符串可以使用单引号
    '...'
    '...'
    或双引号
    "..."
    "..."
    包裹,两者等价。SQL 标准中字符串使用单引号,双引号是扩展语法。当设置
    cz.sql.double.quoted.identifiers=true
    cz.sql.double.quoted.identifiers=true
    时,双引号将被解释为分隔标识符(用于引用列名、表名等),而非字符串字面量。详见参数控制
  • r
    r
    :可选前缀,表示字符串中的转义字符不会被转义。这对于包含特殊字符的字符串非常有用,因为它允许字符串按原样被解释,而不是被转换成转义序列。
  • c
    c
    :Unicode 字符集中的任意字符。

转义序列

在常规字符串文本(无

r
r
前缀)中,以下转义序列会被识别,并根据以下规则替换:

  • \0
    \0
    ->
    \u0000
    \u0000
    ,具有代码 0 的 Unicode 字符;
  • \b
    \b
    ->
    \u0008
    \u0008
    ,退格键;
  • \n
    \n
    ->
    \u000a
    \u000a
    ,换行符;
  • \r
    \r
    ->
    \u000d
    \u000d
    ,回车符;
  • \t
    \t
    ->
    \u0009
    \u0009
    ,水平制表符;
  • \Z
    \Z
    ->
    \u001A
    \u001A
    ,替换;
  • \%
    \%
    ->
    \%
    \%
  • \_
    \_
    ->
    \_
    \_
  • \<other char>
    \<other char>
    ->
    <other char>
    <other char>
    ,跳过斜杠并保留字符原样。

如果字符串具有前缀

r
r
,则不会识别这些转义序列。

示例

以下是一些使用

STRING
STRING
类型和转义序列的示例:

-- 未添加 r,转义序列被解释 SELECT 'Hello \n World!' AS col; +---------+ |   col   | +---------+ | Hello   World! | +---------+ -- 添加 r,转义序列不被解释 SELECT r'Hello \n World!' AS col; +-----------------+ |       col       | +-----------------+ | Hello \n World! | +-----------------+ -- 使用空字符串 SELECT '' AS col; +-----+ | col | +-----+ | | +-----+ -- 使用反斜杠 SELECT '\\' AS col; +-----+ | col | +-----+ | \ | +-----+ -- 使用 r 前缀,反斜杠不被转义 SELECT r'\\' AS col; +-----+ | col | +-----+ | \\ | +-----+

联系我们
预约咨询
微信咨询
电话咨询