[i=s] 本帖最后由 驻跸映辉A 于 2011-12-22 14:39 编辑
在一个SQL的检索言文中的where中含有多个空格如下面的例子:DB
racle 10.2.0.4
A.)测试环境:
create table tbl01 (col1 char(9),col2 char(9),col3 char(9));
insert into tbl01 values ('1234567','abc','a');
insert into tbl01 values ('2345','aaa','b');
insert into tbl01 values ('345678910','abcdefghi','cde');
create table tbl02 as select * from tbl01;
B.) SELECT tbl01.col1, tbl01.col2, aaa.col3 FROM tbl01
,(SELECT
substr(col1||' ',0,9) col1,
col2,
col3
FROM tbl02
UNION ALL
SELECT * from tbl01) aaa
WHERE tbl01.col1 = '1234567'
and tbl01.col1 = aaa.col1;
C.) 结果0行返回(结果错误)
正确结果:
COL1 COL2 COL3
-------- ---- ----
1234567 abc a
1234567 abc a
解决方法:
SQL> alter session/system set "_optimizer_cost_based_transformation"=off;
SQL> alter session/system set "_optimizer_push_pred_cost_based"=false;
SQL> alter session/system set "_optimizer_enhanced_filter_push"=false;
或者升级到10.2.0.5
原因:Bug7374278以前已经修正,但PSR10.2.0.4的regression机能导入后,这个错误再次发生。
在一个SQL的检索言文中的where中含有多个空格如下面的例子:DB
racle 10.2.0.4A.)测试环境:
create table tbl01 (col1 char(9),col2 char(9),col3 char(9));
insert into tbl01 values ('1234567','abc','a');
insert into tbl01 values ('2345','aaa','b');
insert into tbl01 values ('345678910','abcdefghi','cde');
create table tbl02 as select * from tbl01;
B.) SELECT tbl01.col1, tbl01.col2, aaa.col3 FROM tbl01
,(SELECT
substr(col1||' ',0,9) col1,
col2,
col3
FROM tbl02
UNION ALL
SELECT * from tbl01) aaa
WHERE tbl01.col1 = '1234567'
and tbl01.col1 = aaa.col1;
C.) 结果0行返回(结果错误)
正确结果:
COL1 COL2 COL3
-------- ---- ----
1234567 abc a
1234567 abc a
解决方法:
SQL> alter session/system set "_optimizer_cost_based_transformation"=off;
SQL> alter session/system set "_optimizer_push_pred_cost_based"=false;
SQL> alter session/system set "_optimizer_enhanced_filter_push"=false;
或者升级到10.2.0.5
原因:Bug7374278以前已经修正,但PSR10.2.0.4的regression机能导入后,这个错误再次发生。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26552866/viewspace-721854/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26552866/viewspace-721854/
本文详细介绍了在SQL检索语句中处理包含多个空格的情况,并提供了有效的解决方案,包括调整参数设置和升级数据库版本。通过实例演示了在Oracle 10.2.0.4环境下,当查询条件涉及多个空格时出现的错误结果及其修正方法。
16万+

被折叠的 条评论
为什么被折叠?



