看了网上的文章,乱码有以下几种可能
1. 操作系统的字符集
2.oracle server的字符集
3.客户端的字符集
1. 查看oracle的字符集
- select userenv('language') from dual
2.在Ubuntu中.bashrc 中加入下边的话:
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK(改掉操作系统的字符集)
Oracle NLS_LANG Oracle
3.
但是如果不一致的话,会将数据库中的数据转换成操作系统的字符集,返回给用户。插入时一样,就会将数据先做个转换,然后在插入到数据库。
网上的人是这么说的,但具体的我也没试。我有时间试一下,看是不是他所说的那样。
4.修改Oracle的编码和操作系统的一样。(参考别人的)
登陆用dba
SQL> conn sys/sys as sysdba;
停掉数据库
SQL>shutdown immediate;
启动数据库到mount状态下
SQL> STARTUP MOUNT;
- ORACLE instance started.
- Total System Global Area 76619308 bytes
- Fixed Size 454188 bytes
- Variable Size 58720256 bytes
- Database Buffers 16777216 bytes
- Redo Buffers 667648 bytes
- Database mounted.
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
Session altered.
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;
设置字符集
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
先把数据库中的有中文乱码的清空了。
然后在执行。这是有可能报错
执行这个ALTER DATABASE character set INTERNAL_USE ZHS16GBK
跳过字符集检查
关闭数据库
SQL> Shutdown immediate;
重启
SQL> startup;
做完之后在sqlplus里边试一下,应该就好了,但是在pl/sql里边一看还是乱码,
最后,在pl/sql里边创建个表,然后在插入中文,查看一下,应该是对的。
这样就解决了乱码问题。 中间还有许多的问题,自己在慢慢研究吧。
============================================================
相关推荐
- 修改字符集后,需要检查所有应用程序是否能够正常运行,并确保数据的一致性和完整性。 通过以上步骤,我们可以安全地完成Oracle数据库字符集的修改。这不仅可以提高数据库的兼容性和性能,还可以帮助解决由字符集...
此外,如果数据库中有非ASCII字符,可能需要进行数据转换或验证数据一致性,以确保在更改字符集后数据的正确性。在进行字符集转换时,应遵循Oracle官方文档的指导,以确保过程顺利且无数据丢失。
1. **修改客户端字符集后仍出现乱码**: - 检查服务器端和客户端的字符集设置是否一致。 - 确认客户端应用程序是否正确配置了字符集。 2. **无法连接到Oracle数据库**: - 确保客户端和服务器之间的网络连接正常...
需要注意的是,在8i及以上版本的Oracle数据库中,可以通过`ALTER DATABASE`命令来修改字符集,但只能从一个字符集的子集转换到其超集,并且这种操作可能会导致数据丢失或损坏。 1. **修改数据库字符集的步骤** - ...
本文将深入探讨Oracle数据库的导入导出命令,特别是如何更改字符集的相关知识。 首先,Oracle数据库提供了两种主要的数据导入导出工具:`expdp`(Export Data Pump)和`impdp`(Import Data Pump)。这两个实用程序...
安装ORACLE数据库,字符集默认是AL32UTF8,有时需要改变数据库字符集,改成ZHS16GBK,资源里面是修改步骤。
### 修改Oracle数据库字符集的方法 #### 背景与意义 ...通过上述步骤,您可以在Oracle 10g中成功地更改数据库字符集。这有助于扩展数据库的功能,使其能够更好地支持多语言环境或特定字符的需求。
为了安全地修改字符集,我们需要先关闭数据库实例: ```sql SQL> shutdown immediate; ``` 关闭成功后,会输出以下消息: ``` Database closed. Database dismounted. ORACLE instance shut down. ``` ##### 3. ...
本篇将深入探讨Oracle字符集的查看、修改、导入导出以及转换原理。 一、Oracle字符集的查看 在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS ...
8. **验证字符集更改**:通过查询`V$NLS_PARAMETERS`视图来确认字符集是否已成功更改,如`select * from v$nls_parameters;`。 9. **重新启动数据库**:最后,使用`shutdown immediate`和`startup`命令重启数据库,...
Linux 下 Oracle 中文乱码字符集设置 Linux 下的 Oracle 数据库在导入数据库时...Linux 下的 Oracle 数据库中出现中文乱码问题可以通过修改字符集格式来解决,将字符集格式修改成支持中文的格式可以正常显示中文字符。
"Oracle英文字符集插入到中文字符集"的主题聚焦于如何在不同字符集之间进行有效转换,以便在不修改客户端环境变量的情况下,实现数据的正确存储和检索。 Oracle数据库系统支持多种字符集,字符集决定了数据库如何...
oracle11g导入报错,很多情况下是字符集不同导致失败,附件为oracle11g更改字符集操作说明,多次实测有效。
提供的三个`.reg`文件——ZHS16CGB231280.reg、ZHS16GBK.reg、WE8ISO8859P1.reg,就是预先配置好的注册表项,用于一键更改Oracle客户端的默认字符集。例如,导入ZHS16GBK.reg将使客户端使用GBK字符集,这对于连接到...
6. **修改内部使用字符集**:如果直接修改字符集失败,可以先修改内部使用的字符集,即执行`ALTER DATABASE characterset INTERNAL_USE ZHS16GBK;`。 7. **再次关闭并重启数据库**:完成修改后,需要再次关闭数据库...
"Oracle字符集(4).txt"可能涵盖字符集问题的诊断和修复,如如何识别和处理乱码问题,以及如何通过ALTER DATABASE命令更改数据库字符集。 最后,"Oracle字符集(5).txt"可能涉及数据导入导出与字符集的关联,如...