

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# VARIABLE\$1COLUMN\$1LOG\$1PARSE
<a name="sql-reference-variable-column-log-parse"></a>

```
 VARIABLE_COLUMN_LOG_PARSE(
  <character-expression>, <columns>, <delimiter-string>
  [ , <escape-string>, <quote-string> ] )
  <columns> := <number of columns> | <list of columns>
  <number of columns> := <numeric value expression>
  <list of columns> := '<column description>[, ...]'
  <column description> := <identifier> TYPE <data type> [ NOT NULL ]
  <delimiter string> := <character-expression>
  <escape-string> := <character-expression>
  <quote-string> := '<begin quote character> [ <end quote character> ]'
```



VARIABLE\$1COLUMN\$1LOG\$1PARSE 将一个输入字符串（其第一个参数 <character-expression>）拆分为由分隔符或分隔符字符串分隔的多个字段。因此，它可以处理逗号分隔的值或制表符分隔的值。它可以与 [FIXED\$1COLUMN\$1LOG\$1PARSE](sql-reference-fixed-column-log-parse.md) 结合使用来处理诸如 maillog 之类的内容，其中一些字段是固定长度的，而另一些则是可变长度的。

**注意**  
 不支持解析二进制文件。

参数 <escape-string> 和 <quote-string> 是可选的。指定 <escape-string> 可让字段的值包含嵌入式分隔符。举一个简单的例子，如果 <delimiter-string> 指定了一个逗号，<escape-string> 指定了一个反斜杠，则输入“a,b”将拆分为两个字段“a”和“b”，但输入“a\$1,b”将生成一个字段“a,b”。

由于 Amazon Kinesis Data Analytics 支持 [表达式和文字](sql-reference-expressions.md)，制表符也可以是使用 unicode 转义符指定的分隔符，例如 u&'\$10009'，它是仅包含一个制表符的字符串。

指定 <quote-string> 是隐藏嵌入式分隔符的另一种方法。<quote-string> 应为单字符或双字符表达式：第一个字符用作 <begin quote character> 字符；第二个字符（如果有）用作 <end quote character> 字符。如果只提供一个字符，则将其用作带引号的字符串的开头和结尾。如果输入包含一个带引号的字符串（即，包含在指定为 <quote-string> 的字符中的字符串），该字符串将出现在一个字段中，即使它包含一个分隔符。

请注意，<begin quote character> 和 <end quote character> 是单字符，而且可以不同。<begin quote character> 可用于开始和结束带引号的字符串，或者 <begin quote character> 可以开始带引号的字符串而 <end quote character> 用于结束带引号的字符串。

当列 <list of columns> 的列表作为第二个参数 <columns> 提供时，类型 DATE、TIME 和 TIMESTAMP 的列规范 (<column description>) 支持允许用户指定确切的时间部分布局的格式参数。[解析器使用 Java 类 java.lang。 SimpleDateFormat](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)来解析这些类型的字符串。 [日期和时间模式](sql-reference-parse-timestamp-format.md)给出了时间戳格式字符串的完整描述，并附有示例。下面是带有格式字符串的列定义的一个示例：

```
    "name" TYPE TIMESTAMP 'dd/MMM/yyyy:HH:mm:ss'
```

默认情况下，输出列的名称为 COLUMN1、 COLUMN2 COLUMN3、等，每个 SQL 数据类型都是 VARCHAR (1024)。