在我的项目中,我看到了两个配置单元表,在create-table语句中,我发现一个表具有ROW FORMAT DELIMITED FIELDS TERMINATED BY“\u0004”,另一个表有ROW FORM DELIMITE FIELDS PERMINATE BY“\ u001C”。我想知道这些“\u0004”和“\u001C”是什么意思,什么时候使用?请回答。
ggazkfy81#
在许多文本格式中,\u引入了Unicode转义序列。这是一种存储或发送字符的方法,无法以您使用的格式轻松显示或表示。\u后的四个字符是十六进制的Unicode“码位”。Unicode码位是表示特定Unicode字符的数字。所有字符都有一个代码点,即使是可打印的字符。例如,a是U+0061。U+0004和U+001C都是不可打印的字符,这意味着没有标准字符可用于在屏幕上显示它们。这就是为什么这里使用转义序列。如果使用简单的可打印字符(如,)作为字段分隔符,将使存储的数据更容易被人读取。字段值之间将存储,。例如,您可能会看到值one、two和three存储为:
\u
a
U+0061
U+0004
U+001C
,
one
two
three
one,two,three
但是,如果您希望字段值实际包含,,那么字段定界符的选择就很糟糕(因为这样您就需要一种特殊的方法来区分值为one,two的单个字段与值为e13d1e和two两个不同字段之间的差异)。分隔符的选择既取决于您是否希望能够轻松读取它,也取决于您希望字段包含什么字符。
one,two
1条答案
按热度按时间ggazkfy81#
在许多文本格式中,
\u
引入了Unicode转义序列。这是一种存储或发送字符的方法,无法以您使用的格式轻松显示或表示。\u
后的四个字符是十六进制的Unicode“码位”。Unicode码位是表示特定Unicode字符的数字。所有字符都有一个代码点,即使是可打印的字符。例如,
a
是U+0061
。U+0004
和U+001C
都是不可打印的字符,这意味着没有标准字符可用于在屏幕上显示它们。这就是为什么这里使用转义序列。如果使用简单的可打印字符(如
,
)作为字段分隔符,将使存储的数据更容易被人读取。字段值之间将存储,
。例如,您可能会看到值one
、two
和three
存储为:但是,如果您希望字段值实际包含
,
,那么字段定界符的选择就很糟糕(因为这样您就需要一种特殊的方法来区分值为one,two
的单个字段与值为e13d1e和two
两个不同字段之间的差异)。分隔符的选择既取决于您是否希望能够轻松读取它,也取决于您希望字段包含什么字符。