Snowflake 数据库 VARCHAR 列的度量单位是啥?
Posted
技术标签:
【中文标题】Snowflake 数据库 VARCHAR 列的度量单位是啥?【英文标题】: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 语义,因为短于最大长度的字符串在末尾不填充空格。
但是,我仍然不确定长度说明符的度量单位是什么。
【问题讨论】:
【参考方案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 现在看起来很明显。谢谢 不用担心,很高兴它有帮助!以上是关于Snowflake 数据库 VARCHAR 列的度量单位是啥?的主要内容,如果未能解决你的问题,请参考以下文章