PL/SQL查询字段最后一个字符串无法显示

时间:2021-07-24 20:59:59
PL/SQL查询字段最后一个字符串无法显示(字段类型:NVARCHAR2(2));
如:
----实际数据
type
01
02
---sql命令查询时显示
type
0
0
--------------------------
是哪里配置有问题吗?麻烦大家帮助。

17 个解决方案

#2


增加环境变量

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

#3


版本是:Version 8.0.0.1480

引用 楼主 BrucesLong 的回复:
PL/SQL查询字段最后一个字符串无法显示(字段类型:NVARCHAR2(2));
如:
----实际数据
type
01
02
---sql命令查询时显示
type
0
0
--------------------------
是哪里配置有问题吗?麻烦大家帮助。


引用 1 楼 Tiger_Zhao 的回复:
oracle字符集,pl/sql客户端字符集修改

pl/sql字符集设置:
改会话端字符集,注册表方式:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0  下  
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.US7ASCII"  就是客户端的会话字符集,要和数据库的字符集保持一致,比如,如果数据库的字符集是US7ASCII,那么pl sql developer的所在机器的这个注册表值也应该是US7ASCII。

us7字符集:SIMPLIFIED CHINESE_CHINA.US7ASCII
we8字符集:AMERICAN_AMERICA.WE8MSWIN1252
gbk字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
---------------------------
“HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 ”注册表没有找到路径
版本是:Version 8.0.0.1480

#4


引用 2 楼 wmxcn2000 的回复:
增加环境变量

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

---------
添加了, 无效

#5


那么用#2的环境变量,注意还是要和服务器一致。

#6



-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

#7


引用 6 楼 wmxcn2000 的回复:

-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

显示'AA'

#8


何以确定不会就是'0'呢
检查下数据,例如,用sqlplus执行,或用length函数计算下长度

#9


引用 7 楼 BrucesLong 的回复:
Quote: 引用 6 楼 wmxcn2000 的回复:


-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

显示'AA'


你方便把这张表导出来吗? 怀疑这个表的数据有些问题。最后一个字符可能是个特殊字符。

#10


select type,length(type),lengthb(type),dump(type) from 你的表。
贴出结果

#11


引用 8 楼 wildwave 的回复:
何以确定不会就是'0'呢
检查下数据,例如,用sqlplus执行,或用length函数计算下长度

----------
实际存的数据就是01啊,旁边同事查询都是完整显示的;其他字段数据是显示完整的,就这有这个字段是这种情况

#12


引用 10 楼 jdsnhan 的回复:
select type,length(type),lengthb(type),dump(type) from 你的表。
贴出结果

type,length(type),lengthb(type),dump(type)
1 0 2 4                        Typ=1 Len=4: 0,48,0,49
2 0 2 4                        Typ=1 Len=4: 0,48,0,49
3 0 2 4                         Typ=1 Len=4: 0,48,0,50
4 0 2 4                         Typ=1 Len=4: 0,48,0,49
5 0 2 4                         Typ=1 Len=4: 0,48,0,50
6 0 2 4                          Typ=1 Len=4: 0,48,0,50
7 0 2 4                          Typ=1 Len=4: 0,48,0,50

#13


引用 9 楼 wmxcn2000 的回复:
Quote: 引用 7 楼 BrucesLong 的回复:

Quote: 引用 6 楼 wmxcn2000 的回复:


-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

显示'AA'


你方便把这张表导出来吗? 怀疑这个表的数据有些问题。最后一个字符可能是个特殊字符。

----------表结构----
ID CHAR(36) ID
BANNERNAME VARCHAR2(50) Y 名称
TYPE NVARCHAR2(2) Y 类型(01:Web网站;02:App首页)
-----------------
就是type字段存的值查询时无法完整显示(显示'0'),在别人电脑上是可以完整显示的(显示'01');

#14


在别人的机器上没有问题,数据肯定是没有问题的

重装一个别的版本的 plsql developer 吧,估计重装同版本的,也不好用。

#15


问题已解决
http://bbs.csdn.net/topics/390757363
---解决方案
在plsql里的首选项-连接里有个选项:
在oci8上强制使用oci7, 把这个勾上

引用 10 楼 jdsnhan 的回复:
select type,length(type),lengthb(type),dump(type) from 你的表。
贴出结果

问题已解决
http://bbs.csdn.net/topics/390757363
---解决方案
在plsql里的首选项-连接里有个选项:
在oci8上强制使用oci7, 把这个勾上

#16


真诚感谢大家.

#17


版本不一致 PL/SQL查询字段最后一个字符串无法显示

#1


#2


增加环境变量

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

#3


版本是:Version 8.0.0.1480

引用 楼主 BrucesLong 的回复:
PL/SQL查询字段最后一个字符串无法显示(字段类型:NVARCHAR2(2));
如:
----实际数据
type
01
02
---sql命令查询时显示
type
0
0
--------------------------
是哪里配置有问题吗?麻烦大家帮助。


引用 1 楼 Tiger_Zhao 的回复:
oracle字符集,pl/sql客户端字符集修改

pl/sql字符集设置:
改会话端字符集,注册表方式:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0  下  
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.US7ASCII"  就是客户端的会话字符集,要和数据库的字符集保持一致,比如,如果数据库的字符集是US7ASCII,那么pl sql developer的所在机器的这个注册表值也应该是US7ASCII。

us7字符集:SIMPLIFIED CHINESE_CHINA.US7ASCII
we8字符集:AMERICAN_AMERICA.WE8MSWIN1252
gbk字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
---------------------------
“HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 ”注册表没有找到路径
版本是:Version 8.0.0.1480

#4


引用 2 楼 wmxcn2000 的回复:
增加环境变量

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

---------
添加了, 无效

#5


那么用#2的环境变量,注意还是要和服务器一致。

#6



-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

#7


引用 6 楼 wmxcn2000 的回复:

-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

显示'AA'

#8


何以确定不会就是'0'呢
检查下数据,例如,用sqlplus执行,或用length函数计算下长度

#9


引用 7 楼 BrucesLong 的回复:
Quote: 引用 6 楼 wmxcn2000 的回复:


-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

显示'AA'


你方便把这张表导出来吗? 怀疑这个表的数据有些问题。最后一个字符可能是个特殊字符。

#10


select type,length(type),lengthb(type),dump(type) from 你的表。
贴出结果

#11


引用 8 楼 wildwave 的回复:
何以确定不会就是'0'呢
检查下数据,例如,用sqlplus执行,或用length函数计算下长度

----------
实际存的数据就是01啊,旁边同事查询都是完整显示的;其他字段数据是显示完整的,就这有这个字段是这种情况

#12


引用 10 楼 jdsnhan 的回复:
select type,length(type),lengthb(type),dump(type) from 你的表。
贴出结果

type,length(type),lengthb(type),dump(type)
1 0 2 4                        Typ=1 Len=4: 0,48,0,49
2 0 2 4                        Typ=1 Len=4: 0,48,0,49
3 0 2 4                         Typ=1 Len=4: 0,48,0,50
4 0 2 4                         Typ=1 Len=4: 0,48,0,49
5 0 2 4                         Typ=1 Len=4: 0,48,0,50
6 0 2 4                          Typ=1 Len=4: 0,48,0,50
7 0 2 4                          Typ=1 Len=4: 0,48,0,50

#13


引用 9 楼 wmxcn2000 的回复:
Quote: 引用 7 楼 BrucesLong 的回复:

Quote: 引用 6 楼 wmxcn2000 的回复:


-- 看看这个 AA 是显示的 A ,还是AA 
select type || 'AA' from dual 

显示'AA'


你方便把这张表导出来吗? 怀疑这个表的数据有些问题。最后一个字符可能是个特殊字符。

----------表结构----
ID CHAR(36) ID
BANNERNAME VARCHAR2(50) Y 名称
TYPE NVARCHAR2(2) Y 类型(01:Web网站;02:App首页)
-----------------
就是type字段存的值查询时无法完整显示(显示'0'),在别人电脑上是可以完整显示的(显示'01');

#14


在别人的机器上没有问题,数据肯定是没有问题的

重装一个别的版本的 plsql developer 吧,估计重装同版本的,也不好用。

#15


问题已解决
http://bbs.csdn.net/topics/390757363
---解决方案
在plsql里的首选项-连接里有个选项:
在oci8上强制使用oci7, 把这个勾上

引用 10 楼 jdsnhan 的回复:
select type,length(type),lengthb(type),dump(type) from 你的表。
贴出结果

问题已解决
http://bbs.csdn.net/topics/390757363
---解决方案
在plsql里的首选项-连接里有个选项:
在oci8上强制使用oci7, 把这个勾上

#16


真诚感谢大家.

#17


版本不一致 PL/SQL查询字段最后一个字符串无法显示