最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle数据库字符集研究

来源:动视网 责编:小采 时间:2020-11-09 10:28:02
文档

Oracle数据库字符集研究

Oracle数据库字符集研究:Oracle服务器: select * from NLS_database_PARAMETERS where parameter like Oracle服务器: select * from NLS_database_PARAMETERS where parameter like '%CHARACTERSET%';PARAMETER VALUE -
推荐度:
导读Oracle数据库字符集研究:Oracle服务器: select * from NLS_database_PARAMETERS where parameter like Oracle服务器: select * from NLS_database_PARAMETERS where parameter like '%CHARACTERSET%';PARAMETER VALUE -


Oracle服务器: select * from NLS_database_PARAMETERS where parameter like

Oracle服务器:

select * from NLS_database_PARAMETERS where parameter like '%CHARACTERSET%';
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET WE8MSWIN1252
NLS_NCHAR_CHARACTERSET AL16UTF16

表t1:

desc t1;
Name Null Type
---- ---- --------------
ID NUMBER
NAME NVARCHAR2(100)

SQL Developer 查询和insert中文

C:\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf

AddVMOption -Doracle.jdbc.convertNcharLiterals=true

Preference -- > Environment, Encoding选择UTF-16

ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';
TRUNCATE TABLE T1;
INSERT INTO T1 VALUES(1,N'啊');
insert into t1 values(2, '啊');
COMMIT;
col name format a10;
select * from t1;

ID NAME
---------- ----------
1 啊

2 ¿

N'啊'表示nvarchar类型的数据。

以下内容未测试过:

JDBC的配置

-Doracle.jdbc.defaultNChar=true
-Doracle.jdbc.convertNcharLiterals=true

Linux下SQLPlus

NLS_LANG=AMERICAN_AMERICA.AL32UTF8
LC_CTYPE="zh_CN.utf8"
ORA_NCHAR_LITERAL_REPLACE=true

varchar2的长度

varchar2 类型的字段长度以字符或字节来计算,,如varchar2(10 byte), varchar2(10 char)。通常,byte/char都被省略,这时NLS_LENGTH_SEMANTICS定义了默认值。

show parameters NLS_LENGTH_SEMANTICS;
NAME TYPE VALUE
-------------------- ----------- ----
nls_length_semantics string BYTE

数据库的字符集

select * from nls_database_parameters where parameter like '%CHARACTER%'
PARAMETER VALUE
------------------------- -----------
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16

AL32UTF8编码的字符长度是可变的,1-4字节,ASCII字符是1字节。如下所示:

desc t2;
Name Null Type
----- ---- -----------
TNAME VARCHAR2(2)

select * from t2;
TNAME
-----
12

可以看出数字1和2各占一个字节。

查看某字符在当前字符集下的字节数

select lengthb ('C'), lengthb('啊'), length('\r') FROM DUAL;
LENGTHB('C') LENGTHB('啊') LENGTH('\R')
------------ ------------ ------------
1 3 2

文档

Oracle数据库字符集研究

Oracle数据库字符集研究:Oracle服务器: select * from NLS_database_PARAMETERS where parameter like Oracle服务器: select * from NLS_database_PARAMETERS where parameter like '%CHARACTERSET%';PARAMETER VALUE -
推荐度:
标签: 数据 数据库 oracle
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top