Oracle如何修改字符集及如何查看dmp文件的
发布网友
发布时间:2022-04-25 13:56
我来回答
共1个回答
热心网友
时间:2022-04-09 06:48
Oracle数据库查看和修改服务器端的字符集的方法是本文主要要介绍的内容,接下来救让我们一起来了解一下这部分内容。
A、oracle server 端字符集查询
select userenv('language') from al
其中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" 语句
关闭当前ssh窗口。
注意:NLS_LANG变量一定要配置正确否则会引起sqlplus 失效。
关于Oracle数据库查看和修改服务器端的字符集的方法就介绍到这里了,希望能够对您有所收获!
Oracle字符集的查看查询和Oracle字符集的设置修改
导出的DMP文件字符集可通过查看文件头的前两个字节来确定。在Windows环境下,可以使用注册表或环境变量设置客户端字符集,如set nls_lang=AMERICAN_AMERICA.ZHS16GBK。在Unix环境下,环境变量NLS_LANG控制客户端字符集。修改Oracle字符集需谨慎,通常在数据库创建后不易更改。在Oracle 8i及更高版本中,可以...
如何查询dmp文件的字符集
用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:SQL> select nls_charset_name(to_number('0354','xx...
如何改变oracle数据库字符编码
Oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几 M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:SQL> select nls_charset_name(to_number('0354','xxx...
查看Oracle字符集及怎样修改字符集
二.查看数据库字符集这涉及三方面的字符集,一是oracel server端的字符集;二是oracle client端的字符集;三是dmp文件的字符集。在做数据导入的时候,需要这三个字符集都一致才能正确导入。
如何编程读取oracle的dmp文件中的表数据
dmp一般用来备份数据库或者导入数据库。一般用exp命令导出,imp导入 打开的话 1、如果dmp文件比较小,用文本编辑器打开就可以了。2、如果dmp特别大,可以通过toad工具打开。在database\export\exert file browse浏览要打开的dmp即可。
如何查看Oracle数据库字符集,详细操作,xx
用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:SQL> select nls_charset_name(to_number('0354','...
如何修改Oracle数据库字符集
1、首先我们打开电脑桌面,同时按windows徽标键和R键,在弹出来的窗口里输入,regedit,点击OK按钮。2、打开后进入注册表界面。3、打开后找到HKEY_LOCAL_MACHINE下的SOFTWARESOFTWARE下有Oracle选项,自己查找即可找到。4、oracle下有好几个目录,可以都点点,因为目录名字可能不一样,不能肯定的说就是跟我...
oracle导出的dmp文件字符集由谁决定?
字符集是由oracle的当前数据库字符集编码格式决定的,和客户端没关系。 导入时候先设定一下NLS_LANG为中文,取决于你的DB是否支持中文,如果能转换的话,ORACLE自动给转换了。转换不了的话就只能安装一个中文的库,先导入到中文库里面再想办法了。可以通过“select userenv('language') from dual;”查看当前数据库的...
如何在oracle中导入dmp数据库文件
在 Oracle 中导入 .dmp 数据库文件,通常涉及使用 Oracle 的导入/导出工具(imp/exp)。以下是导入 .dmp 文件的基本步骤,以及一些注意事项和常见问题的解决方法。1. 准备环境 确保你有足够的权限来执行导入操作。通常,需要拥有 IMP_FULL_DATABASE 或 DBA 权限。2. 导入操作 使用 imp 工具来导入 ....
oracle 怎么查看dump
1、导出lxh用户的数据,生成dump文件 exp lxh/lxh file=lxh.dmp owner=lxh 2、从dump文件里提取DDL语句 imp lxh/lxh file=lxh.dmp fromuser=lxh touser=lxh indexfile=lxh.sql 该import命令并没有真正的import data,而只是生成了我们对应用户下所有DDL的sql语句。对于表的DDL语句,用REM进行了注释...