请问这是ORACLE的Bug吗
先准备数据:
再看查询:
奇怪的是,上面建表时,如果不加主键,则上面第2个查询是有记录的,最后一个也不是返回0.
附ORACLE版本:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
CREATE TABLE Table_A(EID NUMBER PRIMARY KEY);
/
CREATE TABLE Table_B(EID NUMBER PRIMARY KEY,EMail VARCHAR2(300));
/
INSERT INTO Table_A(EID)
SELECT 1 FROM Dual UNION ALL
SELECT 2 FROM Dual UNION ALL
SELECT 3 FROM Dual UNION ALL
SELECT 4 FROM Dual;
/
INSERT INTO Table_B(EID,Email)
SELECT 3,'123@qq.com' FROM Dual UNION ALL
SELECT 4,'234@qq.com' FROM Dual;
/
COMMIT;再看查询:
--有返回记录
SELECT a.EID
FROM Table_A a
LEFT JOIN Table_B b ON a.EID = b.EID;
-- 无返回记录???
SELECT a.EID
FROM Table_A a
LEFT JOIN (SELECT EID,EMail FROM Table_B WHERE EID IN (3,4)) b ON a.EID = b.EID;
-- 加一列,又返回记录了!!!
SELECT a.EID,b.Email
FROM Table_A a
LEFT JOIN (SELECT EID,EMail FROM Table_B WHERE EID IN (3,4)) b ON a.EID = b.EID;
-- 用COUNT(*)包一层,结果居然是0
SELECT COUNT(*)
FROM (SELECT a.EID,b.Email
FROM Table_A a
LEFT JOIN (SELECT EID,EMail FROM Table_B WHERE EID IN (3,4)) b ON a.EID = b.EID);
奇怪的是,上面建表时,如果不加主键,则上面第2个查询是有记录的,最后一个也不是返回0.
附ORACLE版本:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
...全文
相关推荐
Oracle rac bug又见bug(三)
NULL 博文链接:https://dbzone.iteye.com/blog/844560
oracle常用的bug问题解决
NULL 博文链接:https://fuanyu.iteye.com/blog/1700506
ORACLE Bug 17588480
Bug 17588480 library cache mutex/shared pool latch deadlock 官方说明文档
Oracle11 的ojdbc 去除了bug
Oracle11 6的ojdbc的driver驱动的bug,下载此文件,覆盖到Oracle11 的11.1.0\db_1\jdbc的lib下即可
oracle11g rac bug处理
ORACLE11G rac数据库,版本号是11.2.0.1,CRS启动不了的解决办法。


