Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

cast_* 会话级设置

这些设置可在 system.settings 中查看,并由 源代码 自动生成。

cast_ipv4_ipv6_default_on_conversion_error

类型
Bool
默认值
0
版本历史
版本默认值注释
22.30使函数 cast(value, 'IPv4') 和 cast(value, 'IPv6') 的行为与 toIPv4 和 toIPv6 函数相同

发生转换错误时,转换为 IPv4 的 CAST 运算符、转换为 IPv6 类型的 CAST 运算符,以及 toIPv4、toIPv6 函数将返回默认值,而不是抛出异常。

cast_keep_nullable

类型
Bool
默认值
0

启用或禁用在 CAST 操作中保留 Nullable 数据类型。

当该设置启用时,如果 CAST 函数的参数为 Nullable,则结果也会转换为 Nullable 类型。当该设置禁用时,结果始终严格为目标数据类型。

可能的值:

  • 0 — CAST 结果严格为指定的目标数据类型。
  • 1 — 如果参数类型为 Nullable,则 CAST 结果会转换为 Nullable(DestinationDataType)

示例

以下查询的结果严格为目标数据类型:

SET cast_keep_nullable = 0;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);

结果:

┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Int32                                             │
└───┴───────────────────────────────────────────────────┘

以下查询会使目标端数据类型带有 Nullable 修饰:

SET cast_keep_nullable = 1;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);

结果:

┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Nullable(Int32)                                   │
└───┴───────────────────────────────────────────────────┘

另请参阅

Navigation