STRING 类型

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

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

语法

[r]'c [ ... ]'
  • r:可选前缀,表示字符串中的转义字符不会被转义。这对于包含特殊字符的字符串非常有用,因为它允许字符串按原样被解释,而不是被转换成转义序列。
  • c:Unicode 字符集中的任意字符。

转义序列

在常规字符串文本(无 r 前缀)中,以下转义序列会被识别,并根据以下规则替换:

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

如果字符串具有前缀 r,则不会识别这些转义序列。

示例

以下是一些使用 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 |
+-----+
| \\  |
+-----+

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