【发布时间】:2016-02-10 11:43:31
【问题描述】:
当我使用 listagg 函数时,我得到了大约 2500-4500 个字符。我已经知道 listagg 函数最多限制为 4000 个字节。但我很想知道它需要多少个字符才能等于 4000 个字节,或者至少 oracle 如何根据字符计算字节。谁能帮我解决这个问题。
该字段使用的数据类型是 Varchar2(255 字节)
我从该字段连接字符串并获得大约 2500-4500 个字符。
【问题讨论】:
当我使用 listagg 函数时,我得到了大约 2500-4500 个字符。我已经知道 listagg 函数最多限制为 4000 个字节。但我很想知道它需要多少个字符才能等于 4000 个字节,或者至少 oracle 如何根据字符计算字节。谁能帮我解决这个问题。
该字段使用的数据类型是 Varchar2(255 字节)
我从该字段连接字符串并获得大约 2500-4500 个字符。
【问题讨论】:
这取决于NLS_LENGTH_SEMANTICS。所以无论你的角色集是什么,你的角色都会占据那么多空间。例如在 US7ASCII 1 CHAR = 1 BYTE 而在 UTF8 1 CHAR = 1 to many BYTES。
【讨论】:
做一个
select value from v$nls_parameters where parameter = 'NLS_CHARACTERSET';
它可能是AL32UTF8,它是一个可变宽度的多字节字符集。标准 ASCII 字符将占用一个字节,而重音或非英语字符通常占用三个或四个。
【讨论】: