sql - Oracle SQL 中的 NLS 字符串是什么?

标签 sql database oracle

Oracle SQL 中显示为 char 和 nchar 以及 varchar2 和 nvarchar2 数据类型之间差异的 NLS 字符串是什么?谢谢

最佳答案

每个 Oracle 数据库实例都有 2 个可用的字符集配置:

  1. 默认字符集(char、varchar2、clob等类型使用)
  2. 国家字符集(由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/

相关文章:

mysql - 如何选择空格之前的字符串值的一部分

c - Pro*C 过程调用无限期挂起

sql - 上一次值由负变为正

mysql - 在 mysql 查询中正确转义破折号 (-)

sql - 如何在 SQL Server 中每月 31 天按天循环执行 PIVOT

php - laravel 中的 Eloquent 和数据库身份验证驱动程序有什么区别

database - 在大 PostgreSQL 表上更新查询太慢

MySQL 十六进制字符串低字节在前

javascript - 为什么同一个 SQL 查询可能在 SQL Developer 和代码中返回不同的结果?

sql - 性能问题 : difference between select s. * 与 select *