ITPub博客

首页 > Linux操作系统 > Linux操作系统 > toad?中文?us7assii?

toad?中文?us7assii?

原创 Linux操作系统 作者:lfree 时间:2007-03-22 00:00:00 0 删除 编辑

最近作统计报表,使用toad发现一些问题,记录如下,toad的版本是7.6.0.11:

select * from v$version

BANNER
----------------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
PL/SQL Release 8.1.7.4.0 - Production
CORE 8.1.7.0.0 Production
TNS for Solaris: Version 8.1.7.4.0 - Production
NLSRTL Version 3.4.1.0.0 - Production

SELECT *
FROM nls_database_parameters
WHERE parameter = 'NLS_CHARACTERSET'

PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET US7ASCII

# 建立测试数据:
CREATE TABLE t
( ID INT,c VARCHAR(8),s INT);

insert into t values (1,'卫生材料',1);
insert into t values (2,'取消',2);
insert into t values (3,'其他',3);
insert into t values (4,'卫生材料',4);
insert into t values (5,'其他',5);
commit ;

SELECT SUM (DECODE (c, '卫生材料', s, 0)), SUM (DECODE (c, '取消', s, 0)),
SUM (DECODE (c, '其他', s, 0))
FROM t

很奇怪SUM (DECODE (c, '卫生材料', s, 0))的结果是0,不知道为什么?
其他toad版本没有这个问题,另外我发现执行:
SUM(DECODE(C,'卫蒢材料',S,0)) SUM(DECODE(C,'取消',S,0)) SUM(DECODE(C,'艱他',S,0))
----------------------------- ------------------------- -------------------------
0 2 8

卫生材料 =》卫蒢材料,其他=》艱他


但是为什么'其他'的结果没有错呢?使用高版本的toad就没有这个问题。

并且奇怪的是如果数据库是10G(字符集一样),执行的结果就正常,不会出现‘卫生材料 =》卫蒢材料’
的情况。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-82988/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2389
  • 访问量
    6142493