【发布时间】:2015-06-25 09:37:13
【问题描述】:
如果数据库使用utf8 作为字符集,那么使用带有字节语义的varchar2 是否有意义?
考虑一个变量:
l_str varchar2(10 BYTE);
如果我稍后根据将返回 10 char 列内容的查询为其分配值,我无法知道这些字符将占用多少字节,在 utf8 中可能超过一个字节每个字符。
那么当使用多字节字符集时,我不应该总是使用以下内容吗?
l_str varchar2(10 CHAR);
或者换一种说法,有什么理由应该在PLSQL中使用varchar2(10 byte)或varchar2(10)?
编辑:我能想到使用byte 的唯一原因是,如果您确定存储的字符需要多少字节。因此,在这种情况下,您将分配更少的内存。
【问题讨论】: