oracle导入数据库报错,全是问号,求解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle导入数据库报错,全是问号,求解相关的知识,希望对你有一定的参考价值。

expdp数据源11.2.0.4.0,目标数据库11.2.0.3.0,已建立好directory,赋予read,write权限,但导入过程报错,如下图

你这个应该不是程序的问题,而是客户端字符编码问题
首先,
你要保证你使用的客户端(比如secureCRT编码)、OS的LANG编码。要一致
其次,最好将客户端的NLS_LANG编码设置与oracle server一致。

你可以直接export LANG=c
然后看看显示还是乱码吗,把secureCRT等客户端的编码设置为UTF-8
参考技术A 你这问号是不是中文乱码了 参考技术B 字符集改成english 参考技术C Oracle 报错都会有 ORa-xxxx的 ,直接百度查一下就好了

Oracle使用——PLSQL的中文乱码显示全是问号


问题


        这两天刚将PLSQLOracle配置好,但是在PLSQL中插入数据时。出现一个问题,PLSQL中的表里无法显示中文,中文无法保存、无法输出。中文在表中显示问号。如图:

技术分享

 

 


原因


        经过一番查证,发现问题的源头不是出如今PLSQL上,而是出如今我们的Oracle上,因为我们的Oracle数据库里的字符集不支持中文导致的。既然知道了原因。就好办了。我们就配置我们的Oracle字符集,让他支持中文。

 


解决的方法


我的Oracle11g版本号的,以下以我的为例,为大家解说下设置的过程。

 

步骤一


        開始-执行-输入regedit-回车进入注冊表。依次单击HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本号的Oracle显示的都不太一样,但都会包括home这个单词),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。假设不是就将它设置为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK

 

如图

技术分享

 

 


步骤二


       设置完注冊表后,接下来设置我们的环境变量,计算机(右键) --->属性--->高级系统设置--->高级--->环境变量--->新建。个人建议新建用户变量。变量名输入:“NLS_LANG”。变量值输入:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。点击确定就可以。到此我们就设置完了。

如图

技术分享

 


效果


      以下就看下我们的效果,关闭PLSQL,又一次启动,中文果然出现了,

技术分享

 

 


后记


       环境变量让我们在开发中方便了非常多,可是它也是好多问题的“万恶之源泉”,让人痛并快乐着的环境变量啊。


















以上是关于oracle导入数据库报错,全是问号,求解的主要内容,如果未能解决你的问题,请参考以下文章

PHP插入数据到数据库出中,中文出现乱码~~全是问号

Oracle数据库导入sql文件的时候报错

oracle数据库里中文显示不出来 全是问号

字符集为AL32UTF8的Oracle数据库导入编码格式为UTF-8无BOM编码的sql文件,导入的中文全是乱码,如何解决?

linux下,oracle的视图中中文变问号了,描述有点长,请不吝赐教

oracle导入数据库,如果导入时,数据表已经存在,将报错,对该表不会进行导入,怎么办