【问题标题】:What is the unit of measure of a Snowflake database VARCHAR column?Snowflake 数据库 VARCHAR 列的度量单位是什么?
【发布时间】:2019-12-16 22:57:43
【问题描述】:

在雪花数据库数据定义语言中,当我指定VARCHAR(10) 列时,长度“10”的度量单位是什么?是字节数还是字符数?

也就是说,如果我要存储单个 4 字节字符,是否需要指定 VARCHAR(1)VARCHAR(4)

我正在查看这里的文档,https://docs.snowflake.net/manuals/sql-reference/data-types-text.html,我明白了

一个 VARCHAR 列中可以存储的最大 Unicode 字符数取决于字符是单字节还是多字节:

如果没有指定长度,则默认为最大长度。

Snowflake 目前偏离了常见的 CHAR 语义,因为短于最大长度的字符串在末尾不填充空格。

但是,我仍然不确定长度说明符的度量单位是什么。

【问题讨论】:

    标签: ddl varchar snowflake-cloud-data-platform


    【解决方案1】:

    它是字符,而不是字节或代码点。这是一个简单的例子:

    create table t (x varchar(1)) as select '123' AS x;
    
    String '123' is too long and would be truncated
    

    对比:

    create or replace table t (x varchar(1)) as select '?' AS x;
    
    Table T successfully created.
    

    笑脸Unicode字符是U+1F60A,不止一个字节。

    【讨论】:

    • 好吧。简单的例子。 Shucks 现在看起来很明显。谢谢
    • 不用担心,很高兴它有帮助!
    猜你喜欢
    • 2014-07-31
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多