如何改变数据库字符集

如何改变数据库字符集,第1张

以DBA身份进入SQLPLUS SQL sqlplus sys/sys as sysdba…… SQL shutdown immediateSQL startup mountSQL alter system enable restricted sessionSQL alter system set job_queue_processes=0SQL alter system set aq_tm_processes=0SQL alter database openSQL alter database character set internal_use AL32UTF8(ZHS16GBK) SQL shutdown immediateSQL startup这样就可以讲ORACLE的字符集修改为UTF8,如果需要修改为GBK只需将alter database character set internal_use AL32UTF8(ZHS16GBK)这句最后的AL32UTF8修改为ZHS16GBK即可

(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,

如 default-character-set = utf8

character_set_server = utf8

修改完后,重启mysql的服务,service mysql restart

使用 mysql>SHOW VARIABLES LIKE 'character%'查看,发现数据库编码均已改成utf8

+--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+| character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:"mysql-5.0.37"share"charsets" | +--------------------------+---------------------------------+

(2) 还有一种修改mysql默认字符集的方法,就是使用mysql的命令

mysql>SET character_set_client = utf8 mysql>SET character_set_connection = utf8 mysql>SET character_set_database = utf8 mysql>SET character_set_results = utf8mysql>SET character_set_server = utf8mysql>SET collation_connection = utf8 mysql>SET collation_database = utf8 mysql>SET collation_server = utf8

一般就算设置了表的mysql默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

SET NAMES 'utf8'

它相当于下面的三句指令:

SET character_set_client = utf8 SET character_set_results = utf8 SET character_set_connection = utf8

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.

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

. 1.oracle server端字符集查询        复制代码代码如下:    select userenv('language') from dual    server字符集修改:    将数据库启动到RESTRICTED模式下做字符集更改:&??

oracle10g服务器端是安装在AIX 6.0系统上,客户端是安装在windows server 2008 系统上,客户端与服务器已成功连接,但是数据库表里的中文字无法显示,显示为“?”,用SQLPLUS查得服务器端的字符集为AL16uTF16,如何修改该字符集使之支持中文呢?另外oracle10G客户端的字符集需不需要设置,如何查看和设置呢?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6754142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存