首页数据库查询数据库字符集 oracle数据库里面怎么查看字符集

查询数据库字符集 oracle数据库里面怎么查看字符集

编程之家2023-10-21100次浏览

老铁们,大家好,相信还有很多朋友对于查询数据库字符集和oracle数据库里面怎么查看字符集的相关问题不太懂,没关系,今天就由我来为大家分享分享查询数据库字符集以及oracle数据库里面怎么查看字符集的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

查询数据库字符集 oracle数据库里面怎么查看字符集

oracle数据库里面怎么查看字符集

1、查询Oracle Server端的字符集:

有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:

SQL>select userenv(‘language’) from dual;

结果如下:AMERICAN _ AMERICA. ZHS16GBK。

2、查询dmp文件的字符集:

用Oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:

查询数据库字符集 oracle数据库里面怎么查看字符集

SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;

ZHS16GBK

3、查询Oracle client端的字符集:

这个比较简单。在Windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在Dos窗口里面自己设置,比如:

set nls_lang=AMERICAN_AMERICA.ZHS16GBK

如果检查的结果发现Server端与Client端字符集不一致,请统一修改为同Server端相同的字符集。

查询数据库字符集 oracle数据库里面怎么查看字符集

如何查看sybase数据库的字符集

1. JDBC连接串要有字符集设置

jdbc:sybase:Tds:192.168.3.11:5000/Wfis_db?charset=cp936

2.服务器配置成cp936

(1)使用isql查看当前已经安装的字符集

isql-Usa-P

>use master

>go

>select id,name from syscharsets

>go

id name

-------------------

0 ascii_8

1 iso_1

2 cp850

20 defaultml

21 thaidict

22 iso14651

24 utf8bin

25 binary

39 altnoacc

45 altdict

46 altnocsp

47 scandict

48 scannocp

50 bin_iso_1

50 bin_cp850

51 dict

52 nocase

53 nocasep

54 noaccent

55 espdict

56 espnocs

57 espnoac

59 rusnocs

64 cyrnocs

65 elldict

69 hundict

70 hunnoac

71 hunnocs

73 turknoac

74 turknocs

129 cp932bin

130 dynix

137 gb2312bn

140 cyrdict

155 turdict

161 euckscbn

163 gbpinyin

165 rusdict

179 sjisbin

192 eucjisbn

194 big5bin

(41 rows affected)

从列表中看出没有安装cp936字符集

(2)查看当前使用的缺省字符集

>sp_configure"default char"

>go

Parameter Name Default Memory Used Config Value

Run Value Unit Type

----------------------------------------------------------------

-----------------------------------------

default character set id 2 0 2

2 id static

缺省字符集的id是2,查看上面的列表,可以得知是cp850

(3)因为上面的列表中没有安装cp936,所以就安装cp936字符集

进入目录C:\sybase\charsets\cp936

运行命令 charset-Usa-Plongtop binary.srt cp936

运行完成后,系统就安装了cp936字符集

(4)验证是否确实安装了cp936字符集

isql-Usa-P

>use master

>go

>select id,name from syscharsets

>go

id name

---------------------------------

0 ascii_8

1 iso_1

2 cp850

20 defaultml

21 thaidict

22 iso14651

24 utf8bin

25 binary

39 altnoacc

45 altdict

46 altnocsp

47 scandict

48 scannocp

50 bin_iso_1

50 bin_cp850

50 bin_cp936

51 dict

52 nocase

53 nocasep

54 noaccent

55 espdict

56 espnocs

57 espnoac

59 rusnocs

64 cyrnocs

65 elldict

69 hundict

70 hunnoac

71 hunnocs

73 turknoac

74 turknocs

129 cp932bin

130 dynix

137 gb2312bn

140 cyrdict

155 turdict

161 euckscbn

163 gbpinyin

165 rusdict

171 cp936

179 sjisbin

192 eucjisbn

194 big5bin

(43 rows affected)

从列表中可以发现已经安装了cp936,id是171

(5)把系统的当前缺省字符集设置为cp936

>sp_configure"default char",171

>go

In changing the default sort order, you have also reconfigured SQL Server's

default character set.

Parameter Name Default Memory Used Config Value

Run Value Unit Type

----------------------------------------------------------------

-----------------------------------------

default character set id 2 0 171

2 id static

(1 row affected)

Configuration option changed. Since the option is static, Adaptive Server must

be rebooted in order for the change to take effect.

Changing the value of'default character set id' to'171' increases the amount

of memory ASE uses by 6 K.

(return status= 0)

(6)重启Sybase服务,使更改生效

第一次重启,系统会对已经存在的数据进行转换,转换完成后自动停止服务,只要再次启动服务就可以了。

(7)更改DB客户端的字符集

DBArtisan中要更改客户端的字符集为cp936才能连接cp936的服务器

通过菜单\Logfile\Options...打开对话框,选择Connection标签,

更改Client Character输入框的值为cp936。

数据库的charset修改为cp936时,使用isql按如下的方式

isql-Usa-P-Sdbserver-Jcp936

怎么样查询数据库当前所用的字符集

Oracle数据库查看和修改服务器端的字符集的方法是本文主要要介绍的内容,接下来救让我们一起来了解一下这部分内容。

A、oracle server端字符集查询

select userenv('language') from dual

其中NLS_CHARACTERSET为server端字符集

NLS_LANGUAGE为 server端字符显示形式

B、查询oracle client端的字符集

$echo$NLS_LANG

如果发现你select出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。

C、server端字符集修改

将数据库启动到RESTRICTED模式下做字符集更改:

SQL> conn/as sysdba Connected.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

System altered.

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

System altered.

SQL> alter database open;

Database altered.

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> select* from v$nls_parameters;

19 rows selected.

重启检查是否更改完成:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL> select* from v$nls_parameters;

19 rows selected.

我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验。

这一方法在某些方面是有用处的,比如测试;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责。

结语(我们不妨再说一次):

对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地!

这就要求我们,在进行任何可能对数据库结构发生改变的操作之前,先做有效的备份,很多DBA没有备份的操作中得到了惨痛的教训。

D、client端字符集修改

在/home/oracle与/root用户目录下的。bash_profile中

添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8"语句

如何查看oracle用的什么字符集

查看oracle字符集方法如下:

1、单机电脑做小脚windows图标,输入框中输入“cmd”

2、回车,进入dos窗口

3、登录oracle数据库,使用sys用户以dba身份登录。输入“SQLPLUS”,回车,然后再在用户名下输入“SYS AS SYSDBA”,回车

4、密码后面输入“SYS”,回车。这里输入密码是隐式的,所以看不见,只要输入就好了

5、这里输入SQL查询语句,“select* from nls_database_parameters where parameter='NLS_CHARACTERSET';”然后回车。注意单引号内的内容必须大写,sql语句后面的分号。这里可以看到,数据库使用的是简体中文的字符集。

扩展资料:

甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越IBM,成为继Microsoft后全球第二大软件公司。

2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。 2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。

字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设计的,因此,对中文字符进行编码,是中文信息交流的技术基础。

参考资料:

百度百科-字符集

百度百科-甲骨文公司

文章分享结束,查询数据库字符集和oracle数据库里面怎么查看字符集的答案你都知道了吗?欢迎再次光临本站哦!

服务器centos?centos和linux的区别连接appleid服务器时出错 apple id 建议 验证失败 连接到服务器时出现问题