您当前的位置:首页 > 互联网教程

如何查找sql的字符集,并把字符集导出来

发布时间:2025-05-24 09:44:01    发布人:远客网络

如何查找sql的字符集,并把字符集导出来

一、如何查找sql的字符集,并把字符集导出来

1、字符集是无法导出的,但是可以查询,如果导出,就是连同数据一起导出,不能单独导出字符集。

2、查询数据库服务器字符集的方法:

3、selectuserenv('language')fromdual;

SQLSERVER数据库:

4、selectuserenv('language');

字符集:

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

二、怎样查看数据库的字符集

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

2、 select userenv('language') from dual

3、其中NLS_CHARACTERSET为server端字符集

4、 NLS_LANGUAGE为 server端字符显示形式

5、 B、查询oracle client端的字符集

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

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

8、 SQL> conn/as sysdba Connected.

9、 SQL> startup mount ORACLE instance started.

10、 Total System Global Area 236000356 bytes

11、 Variable Size 201326592 bytes

12、 Database Buffers 33554432 bytes

13、 SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

14、 SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

15、 SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

16、 SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

17、 ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:

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

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

20、 SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

21、 SQL> select* from v$nls_parameters;

22、 SQL> startup ORACLE instance started.

23、 Total System Global Area 236000356 bytes

24、 Variable Size 201326592 bytes

25、 Database Buffers 33554432 bytes

26、 SQL> select* from v$nls_parameters;

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

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

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

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

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

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

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

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

2、 select userenv('language') from dual

3、其中NLS_CHARACTERSET为server端字符集

4、 NLS_LANGUAGE为 server端字符显示形式

5、 B、查询oracle client端的字符集

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

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

8、 SQL> conn/as sysdba Connected.

9、 SQL> startup mount ORACLE instance started.

10、 Total System Global Area 236000356 bytes

11、 Variable Size 201326592 bytes

12、 Database Buffers 33554432 bytes

13、 SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

14、 SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

15、 SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

16、 SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

17、 ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:

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

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

20、 SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

21、 SQL> select* from v$nls_parameters;

22、 SQL> startup ORACLE instance started.

23、 Total System Global Area 236000356 bytes

24、 Variable Size 201326592 bytes

25、 Database Buffers 33554432 bytes

26、 SQL> select* from v$nls_parameters;

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

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

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

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

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

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