关于全球化支持功能
使用全球化支持功能可以开发能够在全球任意位置同时运行的多语言应用程序。应用程序可以使用用户的本机语言和区域设置首选项呈现用户界面的内容并处理数据。
注:
过去,Oracle 将全球化支持称为国家语言支持 (NLS) ,但实际上 NLS 是全球化的支持的子集。NLS 是一种选择国家语言和使用特定字符集存储数据的功能。NLS 是使用 NLS 参数实现的。
另请参阅: Oracle Database Globalization Support Guide(了解有关全球化支持功能的详细信息)
关于语言支持
Oracle Database 支持您以本机语言存储、处理和检索数据。可以存储在数据库中的语言是以 Oracle 支持的字符集编码并写入脚本的所有语言。通过使用 Unicode 数据库和数据类型,Oracle Database 支持大多数现代语言。
对语言的子集提供附加支持。例如,数据库可以使用已翻译的月份名称显示日期,并可以根据文化约定对文本数据进行排序。
在本文档中,语言支持是指与语言相关的附加功能,但不是指存储特定语言文本的能力。例如,语言支持包括根据特定的区域设置和文化约定显示日期或对文本排序。此外,对于某些受支持的语言,Oracle Database 还为数据库实用程序提供翻译的服务器消息和翻译的用户界面。
另请参见:
-
Oracle Database Globalization Support Guide,了解 Oracle Database 支持的语言的完整列表
-
Oracle Database Globalization Support Guide,其中包含 Oracle Database 消息转换到的语言列表
关于地区支持
默认的当地时间格式、日期格式以及数值和货币约定取决于当地地区设置。
Oracle Database 支持特定于地理位置的文化惯例。默认的当地时间格式、日期格式以及数值和货币约定取决于当地地区设置。通过设置不同的 NLS 参数,数据库会话可使用不同的文化设置。例如,对于某个给定的数据库会话,可以将欧元 (EUR) 设为主要货币,将日元 (JPY) 设为辅助货币,即使地区为 AMERICA 也是如此。
另请参见:
-
Oracle Database Globalization Support Guide,获取 Oracle Database 支持的地区完整列表
关于日期和时间格式
不同的国家/地区的小时、日、月份和年份的显示具有不同的约定。
例如,此表显示了五个国家/地区的当地日期和时间格式,而且每个格式都提供了一个示例:
| 国家/地区 | 日期格式 | 范例 | 时间格式 | 范例 |
|---|---|---|---|---|
| 中国 | yyyy-mm-dd |
2005-02-28 |
hh24:mi:ss |
13:50:23 |
| 爱沙尼亚 | dd.mm.yyyy |
28.02.2005 |
hh24:mi:ss |
13:50:23 |
| 德国 | dd.mm.rr |
28.02.05 |
hh24:mi:ss |
13:50:23 |
| UK | dd/mm/yyyy |
28/02/2005 |
hh24:mi:ss |
13:50:23 |
| US | mm/dd/yyyy |
02/28/2005 |
hh:mi:ssxff am |
1:50:23.555 PM |
另请参见:
-
Oracle Database Globalization Support Guide(了解有关日期/时间数据类型和时区支持的信息)
-
Oracle Database SQL Language Reference(了解有关日期和时间格式的信息)
关于日历格式
不同的国家/地区使用不同的日历。
Oracle Database 存储每个地区的以下日历信息:
-
一周中的第一天
有些文化为周日,而另一些文化为周一。由 NLS_TERRITORY 参数设置。
-
日历年的第一周
某些国家/地区使用周数进行调度、计划和簿记。在 ISO 标准中,此周数可能与日立年的周数不同。例如,在 ISO 中,2005 年 1 月 1 日是 2004 年的第 53 周。ISO 周从周一开始,周日结束。为了支持 ISO 标准,Oracle Database 提供了 IW 日期格式元素,该元素返回 ISO 周数。年度的第一个日历周由 NLS_TERRITORY 参数设置。
-
年度中的天数和月数
除了默认支持公历外,Oracle 数据库还支持六种日历系统。这些附加的日历系统包括:
-
日本历
与公历的月数和天数相同,但年度从每个帝国时代的开头开始算起。
-
民国历
与公历的月数和天数相同,但年度从中华民国的成立日开始算起。
-
波斯历
前六个月每月有 31 天,接下来的五个月每月有 30 天,最后一月有 29 天或 30 天 (闰年)。
-
泰国佛历使用佛教日历。
-
阿拉伯语希吉拉有 12 个月和 354 或 355 天。
-
英语希吉拉有 12 个月和 354 或 355 天。
日历系统由 NLS_CALENDAR 参数指定。
-
-
时代的第一年
伊斯兰教日历从希吉拉年度开始算起。日本历是从天皇登基开始算起 (例如 1998 年是平成时代的第十年)。
另请参见:
关于数值和货币格式
不同的国家/地区有不同的数值和货币约定。
此表显示五个国家当地数值和货币格式,而且每个格式都提供了一个示例:
| 国家/地区 | 数字格式 | 货币格式 |
|---|---|---|
| 中国 | 1,234,567.89 | ©1,234.56 |
| 爱沙尼亚 | 1 234 567,89 | 1 234,56 kr |
| 德国 | 1.234.567,89 | 1.234,56€ |
| UK | 1,234,567.89 | £1,234.56 |
| US | 1,234,567.89 | $1,234.56 |
另请参见:
-
Oracle Database Globalization Support Guide(了解有关数值和列表参数的信息)
-
Oracle Database Globalization Support Guide(了解有关货币参数的信息)
-
Oracle Database SQL Language Reference(了解有关数字格式模型的信息)
关于语言排序和字符串搜索
不同语言具有不同排序次序(即轮询序列)。此外,使用相同字母表的不同国家/地区或文化对单词的排序也不同。例如,在丹麦语中,Æ 位于 Z 之后,Y 和 Ü 视作同一字母的不同变体。
另请参见:
-
Oracle Database Globalization Support Guide,了解有关语言排序和字符串搜索的更多信息
关于长度语义
要使用字节长度计算字符串中的字符数,必须知道字符集中每个字符的字节数。
在单字节字符集中,字符串中的字节数和字符数的相同。在多字节字符集中,字符或代码点包含一个或多个字节。在长度可变的字符集中,基于字节长度来计算字符数可能会很困难。以字节数计算列长度称为字节语义,而以字符数的度量列长度称为字符语义。
字符语义对于指定长度可变的多字节字符串的存储要求很有用。例如,在 Unicode 数据库 (AL32UTF8) 中,假定必须有一个 VARCHAR2 列,该列必须最多可存储五个中文字符加五个英文字符。使用字节语义时,此列需要 15 个字节存放中文字符 (中文字符长度为 3 个字节),需要 5 个字节存放英文字符 (英文字符长度为 1 个字节),总共需要 20 个字节。使用字符语义时,此列需要 10 个字符。
另请参见:
-
Oracle Database Globalization Support Guide,了解有关字符集和长度语义的信息
关于 Unicode 和 SQL 国家字符数据类型
Unicode 是一种字符编码系统,可定义世界上大多数现行语言中的所有字符。在 Unicode 中,每个字符都具有唯一代码,而与平台、程序或语言无关。
在 Oracle 数据库中可以采用两种方法存储 Unicode 字符:
-
您可以创建 Unicode 数据库,该数据库支持将 UTF-8 编码的字符作为 SQL 字符数据类型(CHAR、VARCHAR2、CLOB 和 LONG)进行存储。
-
您可以声明具有 SQL 国家字符数据类型列的列和变量。
SQL 国家字符数据类型是 NCHAR、NVARCHAR2 和 NCLOB。这些数据类型还称为 Unicode 数据类型,因为这些类型仅用于存储 Unicode 数据。
用于所有 SQL 国家字符数据类型的国家字符集在创建数据库时指定。国家字符集可以为 UTF8 或 AL16UTF16 (默认设置)。
声明类型为 NCHAR 或 NVARCHAR2 的列和变量时,所指定长度是字符数,而不是字节数。
另请参见:
-
Oracle Database Globalization Support Guide(了解有关 Unicode 的详细信息)
-
Oracle Database Globalization Support Guide(了解有关在 Oracle Database 中存储 Unicode 字符的详细信息)
-
Oracle Database Globalization Support Guide(了解有关 SQL 国家字符数据类型的详细信息)