> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ODBCDriver2 格式说明文档

# ODBCDriver2

| 输入 | 输出 | 别名 |
| -- | -- | -- |
| ✗  | ✔  |    |

<div id="description">
  ## 描述
</div>

`ODBCDriver2` 格式是一种仅输出的二进制格式，用于通过 HTTP 将查询结果传输给
[ClickHouse `ODBC` 驱动程序](/zh/concepts/features/interfaces/odbc)。该驱动程序会通过将 `default_format` 设置为
`ODBCDriver2` 来请求此格式；用户通常不会直接选择该格式。

stream 中的所有整数均为按小端字节序编码的有符号 32 位值。字符串编码由其字节
长度及其后续字节内容组成。输出具有以下结构：

1. 值 `2`，表示后面有两行表头。
2. 名称表头，包含值 `number_of_columns + 1`、字符串 `name` 以及各列的列名。
3. 类型表头，包含值 `number_of_columns + 1`、字符串 `type` 以及各 ClickHouse 数据类型名称。
   会从这些类型名称中移除 `LowCardinality` 包装器。
4. 数据行。每行中，每个结果列均包含一个经文本序列化、带长度前缀的值。数据行不
   包含自身的行数或列数，stream 在 `EOF` 处结束。

`NULL` 值的编码长度为 `-1`；非 NULL 空字符串的长度为 `0`。总计行 (如有) 使用
相同的行编码，并位于普通行之后。

<div id="example-usage">
  ## 使用示例
</div>

以下查询展示了该格式测试所涵盖的值：

```sql theme={null}
SELECT
    1 AS x,
    [2, 3] AS y,
    'Hello' AS z,
    NULL AS a
FORMAT ODBCDriver2
```

由于结果为二进制内容，请将其重定向到文件，而非终端：

```shell theme={null}
clickhouse-client --query \
    "SELECT 1 AS x, [2, 3] AS y, 'Hello' AS z, NULL AS a FORMAT ODBCDriver2" \
    > result.bin
```

正常情况下，驱动程序会在 HTTP 请求中添加 `default_format=ODBCDriver2`，并对响应进行解码。

<div id="format-settings">
  ## 格式设置
</div>

`ODBCDriver2` 对单个值采用标准的文本序列化设置。它没有格式本身特有的设置。
