很诡异的oracle查询乱码,select * 乱码,select 字段 不乱码 20C

数据库字符集:
图片说明

环境变量设置了:
图片说明

然后不管用plsql还是navicate,都是这样的结果:
图片说明
图片说明

就是select * from XXX的话就乱码,不仅仅是中文乱码,就是包含- .这样的字符也乱码,但是select 若干字段 from XXX就不乱码。
数据库是在centos7云服务器上的,自己安装的。

还请大神指导

0

5个回答

找到原因了,是因为NLS_CHARATTERSET是AL32UTF8,但是NLS_NCHAR_CHARACTERSET设置的是UTF-8,把NLS_NCHAR_CHARACTERSET设置为AL16UTF16就可以了,跟查询正常的oracle数据库编码对比发现的这个,就试了一下竟然成功了,当然,编码改了之后重新导数据的

1
u010588262
hugeo-coala 回复shilen77: 不能
大约一年之前 回复
shilen77
shilen77 自问自答,可以赚取C币吗。
大约一年之前 回复

我的环境变量 NLS_LANG 是 SIMPLIFIED CHINESE_CHINA.ZHS16GBK,oracle查询中文正常

0

NLS_CHARATTERSET是AL32UTF8,但是NLS_NCHAR_CHARACTERSET设置的是UTF-8

0

Oracle中不要用*号

0

如果你用sqlplus命令行进行查询的话,如果还会乱码,一般是因为oracle客户端字符集的问题,只要吧客户端字符集改成与服务器端一致就OK;如果你sqlplus命令行没有乱码,而使用plsql developer 或者navicat 会乱码,那就要看本地操作系统的字符集是否与客户端服务器端的保持一致了。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
plsql 中select中文出现乱码的解决方案
情况介绍: 1. 本机没有安装oracle。 2. 本机通过plsql连接远程oracle服务器 问题: 使用plsql执行insert (xxx1,xxx2) select xxx1,xxx2 from dual,发现select ‘产生’ from dual,出现的结果是乱码; (原谅我懒得恢复错误设置,截图错误效果了) 解决方案: 方案1. 新增环境变量 N
记一次oracle托马斯回旋乱码问题解决,select * 会乱码。select 具体字段不乱码!!!!!!!!
前几天在centos7云服务器上装了个oracle,也是第一次安装,虽有些坎坷最终也算搞定了 之前遇到过navicate或者plsql远程登录oracle数据库查询会乱码的问题,所以这次提前做好了准备: 看下数据库的字符编码: windows环境变量相应设置一下 但是数据导进去之后远程登录查询的时候还是傻眼了: 不管是navicate还是plsql都是这样的结...
oracle 中的timestamp字段的值乱码问题修改
我的解决方案: 直接新增一个系统变量: key值为:NLS_TIMESTAMP_FORMAT value的值为:YYYY-MM-DD HH24:MI:SSFF6 其它解决方案: 在登录PLSQL之后,查询相应数据库数据时,发现PLSQL的timestamp显示乱码,如下图所示。 查询数据库服务器端字符集编码,使用如下命令: select userenv('language') f...
解决oracle数据链连sqlserver日期格式乱码,select字段需加转移符
oracle连sqlserver参考透明网关,网上很多,主要说下日期乱码问题。 通过直接查发现日期字段create_time为乱码,其他中文正常。 主要是因为日期格式问题,读过来的数据转以下格式就可以了,注意select的字段要加引号。 select to_date(to_char("create_time",'yyyy/mm/dd hh24:mi:ss'),'yyyy/mm/dd hh...
hive中文字段乱码问题
建表有中文字段,有乱码,因为元数据的columns_v2表默认用的是latin1编码,有中文字段时需要对它进行修改 进入mysql中,执行 alter table columns_v2 modify column COLUMN_NAME varchar(128) character set utf8; 注释乱码一起解决了 1、然后进入数据库执行以下5条SQL语句: (1)
Oracle:sqlplus查询出的中文是乱码问题的解决
有一台远程服务器不能通过Oracle客户端远程登陆,只能通过Secure CRT的ssh登陆(估计原因是1521端口被封)。在这种情况下要select数据就只能先ssh到远程服务器,然后运行sqlplus了。 登陆进sqlplus以后,执行select语句,英文都是正常的,但中文全都是????。 问题解决: 首先,确定问题的原因所在:是字符集的问题是肯定的了,但问题是那里的字符集设置有错误。
MySQL中文查询乱码问题排查方法
刚安装上的MySQL数据库,在没有更改任何配置和更改字符集之前,创建数据库create msgBoard,创建表: create table msg ( id int, title varchar(60), name varchar(10), content varchar(1000) );然后向表中插入数据: insert into msg (id, title, name, cont
【Oracle】 Oracle BLOB转CLOB出现字符乱码问题
【问题】BLOB类型转CLOB出现乱码问题CREATE OR REPLACE FUNCTION BlobToClob(blob_in IN BLOB) RETURN CLOB AS v_clob CLOB; v_varchar VARCHAR2(4000); v_start PLS_INTEGER := 1; v_buffer PLS_INTEGER :...
直接使用sys_guid()返回乱码问题
@Test public void  testPK(){ for (int i = 0; i String pk=  (String)Db.queryStr("select rawtohex(sys_guid()) as GUID from dual"); System.out.println("====>"+i+":"+pk); } } ps:SYS_GUID 以16位
Imp 数据后,表字段的comments 中文显示为乱码,而检索表数据的中文无乱码
目的:          用exp/imp导出导入数据,还原应用数据   环境:          客户端:windows xp + 10g 10.1.0.1          服务端:windows 2003 + 10g 10.1.0.1   产生问题: 在imp数据操作后,发现数据库的表数据显示是中文正常的,但是表的comments却是乱码。   问题发现和解决过程: 第
<select>中文乱码
在web.config中加入红色行代码即可
Mysql查询结果乱码
现象:使用mysql执行select命令后查到的结果如果含有汉字时会出现乱码,如下: 解决方法: 1、使用mysql -u用户名 -p密码命令登录MYSQL 2、执行show variables like 'character%;'获取字符集配置 3、修改/etc/mysql/my.cnf的文件,加入以下内容并保存 [mysql] default-character-set=ut...
PLSQL中查询数据的时候查询结果显示中文乱码
要需要很努力才能看起来毫不费力。。。。。1、在PLSQL中查询数据的时候查询结果显示中文乱码2、需要在环境变量中新建两个环境变量:第一个:设置 NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK第二个:设置:LANG=zh_CN.GBK 3、之后重启PLSQL 再重新连接 乱码显示正常
C#连接Oracle查询数据乱码问题解决
数据库服务器:
Oracle显示中文出现问号(乱码)????
这两天刚刚使用Oracle,出现了好多不愉快的事情,下面分享一下我的一点经历: (1)关于软件版本的问题,我到现在还没有解决,欢迎各路大佬、神仙给点建议: Oracle11g64位,plsql可视化工具是plsqldev1106x64,plsqldev1207x64也用过,看名字就知道都是64位的。按道理Oracle11g64和plsqldev x64搭配是没有问题的,都是64位的,但是这个问...
pl/sql查询中文字段值乱码解决方法
1.执行select userenv('language') from dual;  查询出服务端的编码格式, 如SIMPLIFIED CHINESE_CHINA.US7ASCII   2.修改系统环境变量,增加NLS_LANG=SIMPLIFIED CHINESE_CHINA.US7ASCII   3.重新启动pl/sql即可。   附:网上有的的文章说要修改注册表regedit-...
mysql 数据库查询的数据有一个字段竟然乱码
昨天在做报表查询的时候,发现一个奇怪的现象,sql语句查询的时候是正常的,因为是查询的这个字段是int型,是代表类别的意思,我就进行了转换成对应的中文。 结果导出后发现竟然那个字段是乱码,而其他字段是正常的,没有出现乱码,有次可排除数据库编码问题。 我仔细比较了这个字段和其他字段的区别,后发现原来这个字段是设置int型的,后来改成char类型,问题得以解决,在此记录一下, 防止以后出现的时候
Mybatis中mysql blob类型乱码解决
mysql中存了一个页面的html,应为字段比较长,存成blob类型,在取出后发现会有乱码出现,解决方式是自己扩充了一个TypeHandler public class MyBlobTypeHandler extends BaseTypeHandler { ###指定字符集 private static final String DEFAULT_CHARSET = "ut
mysql select 语句出现中文乱码问题
真是无语,全部上图 1、问题 2、解决方式
Oracle plsql 查询时中文乱码
1.登陆plsql,执行sql语句,输出的中文标题显示成问号????;条件包含中文,则无数据输出输入2.输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文3.进入注册表,依次单击HKEY_LOCAL_MACHINE ---&amp;gt;SOFTWARE ---&amp;gt; ORACLE---&amp;gt;home(小编安装的是Oracle 1...
MySQL根据select语句导入导出数据(含解决中文乱码方式)
所有都亲测,不废话,上代码: 导出 select count(1) from table  into outfile '/tmp/test.xls' character set gbk; 导入 load data local infile 'file.txt' character set gbk; 中文乱码多半就是因为数据库里存储方式是GBK,MySQL本体默认用
oracle中的timestamp字段的值乱码问题修改
原文地址:https://www.cnblogs.com/lowerCaseK/p/timeStamp_coding.html 我的解决方案: 直接新增一个系统变量: key值为:NLS_TIMESTAMP_FORMAT value的值为:YYYY-MM-DD HH24:MI:SSFF6 其它解决方案: 在登录PLSQL之后,查询相应数据库数据时,发现PLSQL的timesta
ThinkPHP 在select查询时 无法使用中文字段原因
在ThinkPHP/Lib/Core/Db.class.php 文件下 protected function parseWhere($where) { $whereStr = ''; if(is_string($where)) { // 直接使用字符串条件 $whereStr = $where; }e
在user_col_comments表中的列注释
在user_col_comments表中的列注释
mysql 查询中文乱码
mysql 插入的中文数据查询出来显示为问号 mysql命令窗口查询乱码 都是编码设置的问题,不难解决
MySQL 命令行查询乱码 编码问题
MySQL 命令行查询乱码 编码问题 当使用数据库工具查询数据时显示数据正常,中文也很正常,利用命令查询时,中文显示乱码,如下图: 然后查看数据库状态: 发现客户端Client及连接Conn. characterset 均为utf8,说明是客户端显示有问题,因为mysql的客户端无法以utf-8的形式返回数据,设置客户端显示格式即可:mysql> set names gbk; 查询显示
mysql group_concat 作为子查询汉字乱码解决
为了到报表,写了一个带子查询分组链接字符串排序,效率很低的一个sql语句,结果group_concat子查询返回汉字是乱码,既不是utf8也不是gbk,搞了半天 以为因为是返回blob类型的原因用concat()转了还是乱码,后来看了下子表的字段编码是gbk的,但sql整体返回的是utf8,我猜应该是这个问题导致,group_concat前 把字段转换成utf8的,运行 搞定。。。。conve
mysql 使用union ALL出现乱码
类型不同时会出现乱码 我的是在Java中 导出的一个功能,我把表字段表头 用中文去union all  出来所需要的数据 但发现导出的时候  ,表头中文出现乱码 原因是我 有个是数字型的decimal  类型,   而表头是varchar类型的中文字符。     解决:CONVERT(sum(a.out_number),CHAR) out_number     数字类型转化为char ...
oracle查询中文数据为乱码 特殊字符乱码
  oracle查询中文数据为乱码 2018年08月02日 11:22:32 zhbzhbzhbbaby 阅读数:271 乱码的问题,都知道是字符集的问题,需要查看数据库服务器的字符集和客户端的字符集   oracle数据库的字符集更改  A、oracle server 端 字符集查询  select userenv('language') from dual  其中NLS_CHA...
Oracle数据库数据显示乱码问题解决方法
主题:Oracle数据库数据显示乱码问题解决方法。 一、问题描述:        在将其它数据库的数据导出文件导入本地新建数据库时,所导入的数据全部是乱码,一般表现为数据表中列的值类似于"?????",即内容大部分为?的表现形式。初步判断是因为Oracle客户端与数据库编码不一致所导致。乱码问题在各类技术很多地方都普遍可能存在,其根本原因主要是数据编码不一致导致。根据其原理排查数据编码
查询数据库数据查询语句中包含中文,但后台参数未乱码,查询没有返回数据
问题:在查询数据库数据的时候只要查询语句中包含中文,但参数未乱码,查询没有返回数据解决方法:开始以为是文件编码问题,看了一下数据库编码和源文件编码,均为为utf-8,不是编码问题。百度了一下,然后在更改了数据库连接url为 jdbc:mysql://DB_HOST:DB_PORT/DB_NAME?characterEncoding=UTF-8,问题解决。...
oracle如何找出数据中的乱码记录
oracle如何找出数据中的乱码记录 ??? 望大师们指点 
oracle查询结果乱码的处理
造成oracle查询所得结果乱码一般是因为client与server中的编码不相同造成,所以一般只要更改下本地的编码,使其与服务端一致便可。 一、查看服务端的编码情况 SELECT * FROM V$NLS_PARAMETERS; http://www.cnblogs.com/rootq/articles/2049324.html; 二、进入注册表,找到NLS_LANG,并将它
cx_Oracle 中文乱码问题解决
cx_Oracle 中文乱码问题解决 在使用cx_oracle模块读取Oracle数据库中的中文记录时,返回值皆为?号,后google得此佳文,遂问题得以解决,特于此记之。 ====================================================================== oracle数据库版本是10g,字符集是AL32UTF8. 编写
oracle中文数据显示乱码--字符集修改方法
问题描述: 安装了oracle数据库以后, 表中的中文数据显示为乱码; 网上查了资料, 原因是oracle字符集没有设置对.SQL> select userenv('language') from dual; USERENV('LANGUAGE') AMERICAN_AMERICA.WE8MSWIN1252执行上述SQL语句查到当前oracle语言环境变量为:AMERICAN_AMERICA
解决oracle数据显示问号和乱码的问题
查询结果显示为?SQL&amp;gt; select * from name;NAME------------------------------------------------------------?????????查看环境变量SQL&amp;gt; select userenv('language') from dual;USERENV('LANGUAGE')----------------------...
oracle客户端中文乱码处理
查询服务器用户字符集:select userenv('LANGUAGE') From dual查询结果:AMERICAN_AMERICA.ZHS16GBK 设置系统变量名:NLS_LANG,变量值:AMERICAN_AMERICA.ZHS16GBK 重启电脑服务器字符集:select * from nls_database_parameters  NLS_LANG = language_terri...
Oracle 数据库 字符乱码 解决办法
Oracle 数据库 字符乱码 解决办法: 问题描述: 1、安装完成之后,还原之前的数据库,显示为乱码,因为在安装oracle 的时候与之前数据库的字符集不一至,导致业务乱码。 2、查询当前数据库字符集 SQL> SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET'; PA
utl_raw.cast_to_varchar2 函数转换字符串有很多空字符问题
使用utl_raw.cast_to_varchar2转换为var replace(utl_raw.cast_to_varchar2(xxx),unistr('\0000'),'')
处理Oracle中查询结果中文出现问号(非乱码)的解决办法
公司电脑C盘烧了,C盘东西全丢,开发环境需要重搭,我想死的心都有了。。。。搭建环境成功后使用Plus/Sql查询出的结果的中文出现问号的情况,以下是我解决的方法: 1.输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文。 2.进入注册表,依次单击HKEY_LOCAL_MACHINE ---&amp;gt;SOFTWARE ---&amp;...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java 乱码 西班牙语 python读取西班牙语乱码