- 浏览: 519202 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (299)
- Oracle(pl/sql_Erp_Pro*C) (69)
- 设计模式 (4)
- spring (23)
- ext (17)
- apache开源项目应用 (4)
- jquery (16)
- 生活琐事 (8)
- 下载资源 (23)
- mysql (2)
- Eclipse使用积累 (5)
- 报表类(报表/图表) (13)
- php (4)
- Web多彩文本框 (3)
- json (4)
- jqgrid (2)
- ant (2)
- java算法积累 (8)
- EL表达式/JSTL (4)
- poi (3)
- gwt (2)
- 爬网第一步 (2)
- javascript (17)
- Javaweb (8)
- tomcat (1)
- flex (1)
- Java&DB (3)
- J2SE (7)
- linux (3)
- 数据结构 (1)
- dot net (5)
- struts (1)
- ibatis (1)
- log4j (1)
- 项目管理 (1)
- Java native interface(jni,jacob......) (5)
- applet (1)
- VB.net/C#.net/JNI (20)
- css (1)
- Sqlite (1)
- servlet (1)
- REST (1)
最新评论
-
wenhurena:
能不能给一下解压密码roki.work.2017@gmail. ...
Ebs解体新書と学習資料1 -
liutao1600:
楼主写的太好了,每天学习~~
Spring_MVC(6)测试 -
liutao1600:
太好了,每天学习你的文章~~~
Spring_MVC(3)表单页面处理 -
liutao1600:
学习了,太好了
Spring_MVC(2)控制层处理 -
liutao1600:
学习了~~~
Spring_MVC(1)构建简单web应用
Character Encoding Schemes
Single-Byte 7-Bit Encoding Schemes
Single-Byte 8-Bit Encoding Schemes
Multi-Byte Encoding Schemes
Multi-byte encoding schemes are needed for Asian languages because these languages use thousands of characters. A double-byte encoding scheme can support up to 65536 characters. Some multi-byte encoding schemes use the value of the most significant bit to indicate if a byte represents a single-byte character or is the first or second byte of a double-byte character. In other schemes, control codes differentiate single-byte from double-byte characters. A shift-out code indicates that the following bytes are double-byte characters until a shift-in code is encountered.
There are two general groups of encoding schemes, those based on 7-bit ASCII and those based on IBM EBCDIC. Within each group, all schemes normally use the same encoding for the 26 Latin characters (A to Z), but use different encoding for other characters used in languages other than English. ASCII and EBCDIC use different encodings, even for the Latin characters.
--------------------------
Specifying Language-Dependent Behavior
Most NLS parameters can be used in three ways
- As initialization parameters to specify language-dependent behavior defaults for the server.
-
For example, in your INIT.ORA file, include
NLS_TERRITORY = FRANCE
- As environment variables on client machines to specify language-dependant behavior defaults for a session. These defaults override the defaults set for the server.
-
For example, on a UNIX system
setenv NLS_TERRITORY FRANCE
-
For example:
ALTER SESSION SET NLS_TERRITORY = FRANCE
NLS Parameters
The NLS_LANGUAGE and NLS_TERRITORY parameters implicitly specify several aspects of language-dependent operation. Additional NLS parameters provide explicit control over these operations. The parameters listed below can be specified in the initialization file, or they can also be specified for each session with the ALTER SESSION command.
Parameter | Description |
NLS_CALENDAR | Calendar system |
NLS_CURRENCY | Local currency symbol |
NLS_DATE_FORMAT | Default date format |
NLS_DATE_LANGUAGE | Default language for dates |
NLS_ISO_CURRENCY | ISO international currency symbol |
NLS_LANGUAGE | Default language |
NLS_NUMERIC_CHARACTERS | Decimal character and group separator |
NLS_SORT | Character sort sequence |
NLS_SPECIAL_CHARS | |
NLS_TERRITORY | Default territory |
NLS_CALENDAR
Many different calendar systems are in use throughout the world. NLS_CALENDAR specifies which calendar system Oracle uses.
NLS_CALENDAR can have one of the following values:
- Arabic Hijrah
- Gregorian
- Japanese Imperial
- Persian
- ROC Official
- Thai Buddha
For example, if NLS_CALENDAR is set to "Japanese Imperial", the date format is "YY-MM-DD", and the date is February 17, 1907, then the sysdate is displayed as follows:
SELECT SYSDATE FROM DUAL;
SYSDATE
--------
07-02-17
NLS_CURRENCY
This parameter specifies the character string returned by the number format mask L, the local currency symbol, overriding that defined implicitly by NLS_TERRITORY. For example, to set the local currency symbol to "Dfl" (including a space), the parameter should be set as follows:
NLS_CURRENCY = "Dfl "In this case, the query
SELECT TO_CHAR(TOTAL, 'L099G999D99') "TOTAL"FROM ORDERS WHERE CUSTNO = 586would return
TOTAL-------------Dfl 12.673,49You can alter the default value of NLS_CURRENCY by changing its value in the initialization file and then restarting the instance, and you can alter its value during a session using an ALTER SESSION SET NLS_CURRENCY command.
For a complete description of ALTER SESSION, see Oracle7 Server SQL Reference.
NLS_DATE_FORMAT
Defines the default date format to use with the TO_CHAR and TO_DATE functions. The default value of this parameter is determined by NLS_TERRITORY. The value of this parameter can be any valid date format mask, and the value must be surrounded by double quotes. For example:
NLS_DATE_FORMAT = "MM/DD/YYYY"As another example, to set the default date format to display Roman numerals for months, you would include the following line in your initialization file:
NLS_DATE_FORMAT = "DD RM YY"
SELECT TO_CHAR(SYSDATE) CURRDATEFROM DUAL;CURRDATE---------13 II 91The value of this parameter is stored in the tokenized internal date format. Each format element occupies two bytes, and each string occupies the number of bytes in the string plus a terminator byte. Also, the entire format mask has a two-byte terminator. For example, "MM/DD/YY" occupies 12 bytes internally because there are three format elements, two one-byte strings (the two slashes), and the two-byte terminator for the format mask. The tokenized format for the value of this parameter cannot exceed 24 bytes.
Note: The applications you design may need to allow for a variable-length default date format. Also, the parameter value must be surrounded by double quotes: single quotes are interpreted as part of the format mask.
You can alter the default value of NLS_DATE_FORMAT by changing its value in the initialization file and then restarting the instance, and you can alter the value during a session using an ALTER SESSION SET NLS_DATE_FORMAT command.
For a complete description of ALTER SESSION, see Oracle7 Server SQL Reference.
NLS_DATE_ LANGUAGE
This parameter specifies the language for the spelling of day and month names by the functions TO_CHAR and TO_DATE, overriding that specified implicitly by NLS_LANGUAGE. NLS_DATE_LANGUAGE has the same syntax as the NLS_LANGUAGE parameter, and all supported languages are valid values. For example, to specify the date language as French, the parameter should be set as follows:
NLS_DATE_LANGUAGE = FRENCHIn this case, the query
SELECT TO_CHAR(SYSDATE, 'Day:Dd Month yyyy')FROM DUAL;would return
Mercredi:13 Février 1991Month and day name abbreviations are also in the language specified, for example:
Me:13 Fév 1991The default date format also uses the language-specific month name abbreviations. For example, if the default date format is DD-MON-YYYY, the above date would be inserted using:
INSERT INTO tablename VALUES ('13-Fév-1991');The abbreviations for AM, PM, AD, and BC are also returned in the language specified by NLS_DATE_LANGUAGE. Note that numbers spelled using the TO_CHAR function always use English spellings; for example:
SELECT TO_CHAR(TO_DATE('27-Fév-91'),'Day: ddspth Month')FROM DUAL;would return:
Mercredi: twenty-seventh FévrierYou can alter the default value of NLS_DATE_LANGUAGE by changing its value in the initialization file and then restarting the instance, and you can alter the value during a session using an ALTER SESSION SET NLS_DATE_LANGUAGE command.
For a complete description of ALTER SESSION, see Oracle7 Server SQL Reference.
NLS_ISO_CURRENCY
This parameter specifies the character string returned by the number format mask C, the ISO currency symbol, overriding that defined implicitly by NLS_TERRITORY.Local currency symbols can be ambiguous; for example, a dollar sign ($) can refer to US dollars or Australian dollars. ISO Specification 4217 1987-07-15 defines unique "international" currency symbols for the currencies of specific territories (or countries).
For example, the ISO currency symbol for the US Dollar is USD, for the Australian Dollar AUD. To specify the ISO currency symbol, the corresponding territory name is used.
NLS_ISO_CURRENCY has the same syntax as the NLS_TERRITORY parameter, and all supported territories are valid values. For example, to specify the ISO currency symbol for France, the parameter should be set as follows:
NLS_ISO_CURRENCY = FRANCEIn this case, the query
SELECT TO_CHAR(TOTAL, 'C099G999D99') "TOTAL"FROM ORDERS WHERE CUSTNO = 586would return
TOTAL-------------FRF12.673,49For a complete description of ALTER SESSION, see Oracle7 Server SQL Reference.
NLS_NUMERIC_ CHARACTERS
This parameter specifies the decimal character and grouping separator, overriding those defined implicitly by NLS_TERRITORY. The decimal character separates the integer and decimal parts of a number. The grouping separator is the character returned by the number format mask G. For example, to set the decimal character to a comma and the grouping separator to a period, the parameter should be set as follows:
NLS_NUMERIC_CHARACTERS = ",."Both characters are single byte and must be different. Either can be a space.
Note: When the decimal character is not a period (.) or when a group separator is used, numbers appearing in SQL statements must be enclosed in quotes. For example:
INSERT INTO SIZES (ITEMID, WIDTH, QUANTITY)VALUES (618, '45,5', TO_NUMBER('1.234','9G999'));You can alter the default value of NLS_NUMERIC_CHARACTERS by changing its value in the initialization file and then restarting the instance, and you can alter its value during a session using an ALTER SESSION SET NLS_DATE_LANGUAGE command.
For a complete description of ALTER SESSION, see Oracle7 Server SQL Reference.
NLS_SORT
This parameter specifies the type of sort for character data, overriding that defined implicitly by NLS_LANGUAGE.The syntax of NLS_SORT is:
NLS_SORT = { BINARY | name }BINARY specifies a binary sort and name specifies a particular linguistic sort sequence. For example, to specify the linguistic sort sequence called German, the parameter should be set as follows:
NLS_SORT = GermanThe name given to a linguistic sort sequence has no direct connection to language names. Usually, however, each supported language will have an appropriate linguistic sort sequence defined that uses the same name.
Note: Setting the NLS_SORT initialization parameter to BINARY causes a sort to use a full table scan, regardless of the path the optimizer chooses.
You can alter the default value of NLS_SORT by changing its value in the initialization file and then restarting the instance, and you can alter its value during a session using an ALTER SESSION SET NLS_SORT command.
For a complete description of ALTER SESSION, see Oracle7 Server SQL Reference.
A complete list of linguistic definitions is provided in the "Linguistic Definitions" table .
_______________________________________________________________________
NLS Data
This section lists supported languages, territories, storage character sets, Arabic/Hebrew display character sets, linguistic definitions, and calendars.
Table C-2 Oracle Character Sets for Operating System Locales
Storage Character Sets
The following storage character sets are supported in Oracle Server release 7.3:
Arabic/Hebrew Display Character Sets
The following Arabic/Hebrew display character sets are supported in Oracle Server release 7.3:
_____________________________________________________________________
摘要至itpub
AL16UTF16 和 UTF8 这两种选择都适用于国家字符集
AL16UFT16 是宽度固定的双字节 Unicode 字符集
UTF8 是宽度可变的、一至三个字节的 Unicode 字符集
欧洲字符在 UTF8 中按一至两个字节存储,而在 AL16UTF16 中按两个字节存储,相比之下,UTF8可以节省空间
亚洲字符在 UTF8 中按三个字节存储,这样,所需的空间比在 AL16UTF16 中要多
AL16UTF16 是宽度固定的编码,因此在执行速度上要比宽度可变的 UTF8 快
翻译的一段:
字符集类型
CREATE DATABASE语句中有CHARACTER SET从句和附加的NATIONAL CHARACTER SET从句用来定义
数据库的字符集和国家字符集。这两个字符集在数据库创建之后都无法修改。如果不指明NATIONAL
CHARACTER SET从句,则国家字符集缺省取数据库字符集。
因为数据库字符集用于标识并装载SQL和PL/SQL源代码,所以数据库字符集必须将EBCDIC或7位ASCII
作为子集。因此,固定宽度,多字节字符集不可能作为数据库字符集,而只能作为国家字符集。数据类型
NCHAR,NVARCHAR2和NCLOB是基本数据类型CHAR,VARCHAR2和BLOB的变体,来指明它们用国家字符集而
不是数据库字符集存储数据。
NCHAR用于使用国家字符集定义固定长度的字符项。
NVARCHAR2用于使用国家字符集定义变长度的字符项。
NCLOB用于使用国家字符集定义字符大对象,来保存固定宽度,多字节字符。
数据库字符集存储变宽度字符,国家字符集存储固定宽度和变宽度多字节字符。
原文
Character Set Types
The CREATE DATABASE statement has the CHARACTER SET clause and the
additional optional clause NATIONAL CHARACTER SET to declare the character set
to be used as the database character set and the national character set. Neither
character set can be changed after creating the database. If no NATIONAL
CHARACTER SET clause is present, the national character set defaults to the
database character set.
Because the database character set is used to identify and to hold SQL and PL/SQL
source code, it must have either EBCDIC or 7-bit ASCII as a subset, whichever is
native to the platform. Therefore, it is not possible to use a fixed-width, multibyte
character set as the database character set, only as the national character set.
The data types NCHAR, NVARCHAR2, and NCLOB are provided to declare columns
as variants of the basic types CHAR, VARCHAR2, and CLOB, to note that they are
stored using the national character set and not the database character set.
• To declare a fixed-length character item that uses the national character set, use the
data type specification NCHAR [(size)].
• To declare a variable-length character item that uses the national character set, use
the data type specification NVARCHAR2 (size).
• To declare a character large object (CLOB) item containing fixed-width, multibyte
characters that uses the national character set, use the data type specification
NCLOB (size).
效率
从上述编码原理中得出的结论是:
1.每个英文字母、数字所占的空间为1 Byte;
2.泛欧语系、斯拉夫语字母占2 Bytes;
3.汉字占3 Bytes。
由此可见UTF8对英文来说是个非常诱人的方案,但对中文来说则不太合算,无论用ANSI还是 Unicode/UCS2来编码都只用2 Bytes,但用UTF8则需要3 Bytes。
以下是一些统计资料,显示用UTF8来储存文件每个字符所需的平均字节:
1.拉丁语系平均用1.1 Bytes;
2.希腊文、俄文、阿拉伯文和希伯莱文平均用1.7 Bytes;
3.其他大部份文字如中文、日文、韩文、Hindi(北印度语)用约3 Bytes;
4.用超过4 Bytes的都是些非常少用的文字符号。
发表评论
-
IBatis调用ORACLE的存储过程、函数的返回结果集例子
2012-03-05 23:31 2133import java.io.Serializabl ... -
Oracle分页函数样例——用于提高当前框架分页性能
2012-03-05 23:27 1387create or replace procedure P ... -
Oracle入门课件
2011-12-11 22:43 1011下载附件 -
自己经常上的Oracle官网的一些链接~~是啥自己点开看
2011-11-17 23:27 1117http://www.oracle.com/pls/db ... -
Oracle性能诊断艺术源码
2011-08-16 00:51 880请下载。 -
oracle support
2011-06-23 16:34 920https://support.oracle.com/CSP/ ... -
oracle 11g sql code
2011-02-24 20:55 1109附件参考 -
Oracle SQL优化
2011-01-19 23:16 877详见附件。讲述优化器。 -
Oracle PGA概念及调整
2011-01-03 23:18 1750--预备知识PGA(Process Global Area), ... -
修改Oracle SGA——防止oracle内存分配不足而down机
2011-01-03 23:16 2341在安装oracle 10g r2 数据库时,默认的SGA大 ... -
oracle SGA
2011-01-03 23:14 1365系统全局区又称SGA (System Global A ... -
Oracle 高水位概念(hwm)
2010-12-22 22:09 1435说到HWM,我们首先要简要 ... -
CDC积累的plsql用的各种例子
2010-11-09 15:49 836自用,有密码!请勿浪费时间下载。 -
oracle Erp安装和具体财务模块介绍
2010-10-11 12:54 1180http://bbs.erp100.com/thread-20 ... -
Oracle察看表约束
2010-10-08 16:07 11071、我们创建的对象可以从"USER_"开通 ... -
Oracle 行列转换积累
2010-09-29 11:36 1705行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串 ... -
oracle bulk collection
2010-09-14 18:26 1256Oracle Bulk Collection & ... -
oracle discover
2010-09-03 16:28 958oracle discover -
Oracle rawtohex hextoraw
2010-09-03 15:03 3186Oracle 8.1.7 SQL> ed ... -
Oracle Raw,number,varchar2转换
2010-09-03 14:56 2262Oracle Raw,number,varchar2...转换 ...
相关推荐
### 修改Oracle字符集 #### 适用版本与注意事项 本文档主要介绍了如何在Oracle 9i、10g以及XE版本中修改字符集的方法,并且在10.2.0.1.0版本下进行了成功的测试。需要注意的是,在执行字符集转换的过程中可能会...
-- 报错 不支持 oracle-character-set-852 pstmt.setArray(1, array); pstmt.executeUpdate(); 将10g版本配套的3个文件集中到一起, orai18n.jar classes12.jar nls_charset12.jar 防止下载的文件版本不一样,仍...
针对"Instant Client Light: unsupported server character set CHS16GBK/ZHS16GBK"的解决步骤: 1. **升级Instant Client**:确保你的Oracle Instant Client版本是最新的,因为旧版本可能不支持某些字符集。在本例...
用root身份执行该脚本,实现对limits.conf,login,sysctl.conf,profile,.bash_profile文件进行设置,并创建用户oracle,创建oinstall和dba组,创建安装目录 执行脚本命令 ./path.ksh 密码(oracle用户的密码) ...
1. **字符集定义**:字符集(Character Set)是一组符号及编码规则的集合,用于存储和处理文本数据。 2. **Oracle中的字符集类型**: - **国家字符集**(National Character Set):如`AL32UTF8`,主要用于存储...
在修改字符集格式之前,需要先关闭数据库,然后使用 `ALTER DATABASE CHARACTER SET ZHS16GBK;` 语句修改字符集格式,最后使用 `STARTUP` 语句打开数据库。这样,数据库中的字符集格式就被修改成了 ZHS16GBK,从而...
- 尝试执行`ALTER DATABASE NATIONAL CHARACTER SET INTERNAL ZHS16GBK;`命令。尽管该命令可能报错ORA-00933: SQL命令未正确结束,但这并不意味着前一个命令无效。 11. **再次关闭数据库:** - 使用`SHUTDOWN ...
* 数据库字符集(Database Character Set):是 Oracle 数据库服务器的字符集,用于存储和处理数据。 * 客户端字符集(Client Character Set):是 Oracle 客户端的字符集,用于连接数据库服务器的客户端应用程序。 ...
描述中的"Non supported character set: oracle-character-set-852"就是一个典型的例子。 字符集是数据库管理系统中用于存储、处理和传输文本数据的关键组成部分。不同的字符集可以支持不同语言和特殊符号的表示。...
set ORACLE_SID=your_sid ``` 然后,使用sqlplus登录到数据库,但不要输入用户名和密码,只需输入`sqlplus /nolog`。接着,执行以下命令: 1. 连接到数据库作为SYSDBA用户: ```sql conn /as sysdba ``` 2. ...
安装过程中,需要选择正确的安装选项,包括选择安装位置、选择网格基础结构、选择数据库Character Set 等。安装完成后,需要配置 Oracle 网络监听和 tnsnames.ora 文件等。 四、 Oracle Database 安装 Oracle ...
不过Oracle XE目前的beta2缺省安装的字符集是WE8MSWIN1252,不是中文字符集,并且不能通过直接运行 alter database character set ZHS16GBK ; 来修改,因为ZHS16GBK不是缺省字符集的超集。过去流传很广的直接修改...
接下来是关键步骤,我们需要使用`ALTER DATABASE CHARACTER SET`命令来修改数据库的字符集。这里以修改为`ZHS16GBK`为例: ```sql SQL> alter database character set ZHS16GBK; ``` 如果直接修改失败(如示例中所...
Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl 为 Oracle 的 SID String user = "test"; String password = "test"; Connection conn = ...
全局字符集(Database Character Set)定义了数据库中所有数据的字符表示,而客户端字符集(NLS_LANG)则决定了客户端应用程序与数据库交互时的数据表示方式。如果两者不匹配,可能导致乱码问题。 在创建新数据库时...
使用在JDK 1.2, 1.3 和 1.4下的NLS(National Language Support,国家语言支持)类.这个jar包替换了老的nls_charset jar/zip 文件.
- **国家字符集(National Character Set)**:为特定语言环境定义的字符集,通常用于处理多字节字符。 - **NLS_LANG**:环境变量,用于指定客户端的语言、地区和字符集信息。 2. **NLS_LANG格式**: - **格式*...
Oracle 19C驱动是Oracle数据库19c版本的Java Database Connectivity (JDBC)驱动程序,主要用于Java应用程序与Oracle 19c数据库之间的通信。在Java应用中,JDBC驱动是一个关键组件,它允许程序通过Java语言访问和操作...
为解决 navicat连接oracle报错:ORA-12737 Instant Client Light:unsupported server character set ZHS16GBK 错误,而准备的文件