Oracle SQL 中显示为 char 和 nchar 以及 varchar2 和 nvarchar2 数据类型之间差异的 NLS 字符串是什么?谢谢
最佳答案
每个 Oracle 数据库实例都有 2 个可用的字符集配置:
- 默认字符集(char、varchar2、clob等类型使用)
- 国家字符集(由nchar、nvarchar2、nclob等类型使用)
因为默认字符集可以配置为不支持所有 Unicode 字符的字符集(例如 Windows 1252),这就是 Oracle 提供此备用字符集配置的原因同样, 保证支持 Unicode。
假设您的数据库使用 Windows-1252 作为其默认字符集(我不推荐使用它),并使用 UTF-8 作为国家(或备用)字符集...
然后如果你有一个表格列,你不需要支持各种奇怪的unicode字符,那么如果你愿意的话,你可以使用varchar2这样的类型。这样做可能会节省一些空间。
但是如果您确实需要存储和支持 unicode 字符,那么对于那个非常具体的实例,您的列应该定义为 nvarchar2,或者使用国家字符集的其他一些类型。
也就是说,如果你的数据库的默认字符集已经是支持Unicode的字符集,那么就没有必要使用nchar、nvarchar2等类型了。
您可以找到有关该主题的更多完整信息 here .
关于sql - Oracle SQL 中的 NLS 字符串是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937011/