Tag Archives: NULL

非空字段空值的产生

上一篇讨论了非空字段中如果存在空值对于查询的影响,这里描述一下导致问题的原因。 非空字段空值对查询的影响:https://yangtingkun.net/?p=1481 书接上文,其实CBO的判断本身是没有问题的,问题在于,为什么一个空值会存在非空约束的字段中。 重新看一下问题: SQL> select * from t_def; ID NAME TYPE ———- —————————— ——– 1 a SQL> select * from t_def where type is null; no rows selected SQL> select * from t_def where type is not null; ID … Continue reading

Posted in BUG, ORACLE | Tagged , , | Leave a comment

非空字段空值对查询的影响

BLOG有三年没有更新了,其实这篇文档也是三年前写的,不过当时没有贴出来,今天看到有人问起,于是分享出来。 这是客户数据库中碰到的一个有意思的问题。 数据库版本为11.2.0.3,客户的DSG同步软件在同步某张表时出现了错误,报错无非插入空值ORA-1400,本来这是一个很简单的问题,但是诊断发现问题比较有意思: SQL> select * from t_def; ID NAME TYPE ———- —————————— ——– 1 a SQL> select * from t_def where type is null; no rows selected SQL> select * from t_def where type is not null; ID NAME … Continue reading

Posted in BUG, ORACLE | Tagged , , , | 2 Comments

Logminer获取UNKNOWN的USERNAME

客户反馈尝试通过LOGMINER获取USERNAME和PROGRAM信息,但是即使打开了SUPPLEMENTAL LOG,仍然到得UNKNOWN的结果。 查询了MOS文档,果然找到了一个对应的BUG:Some Column Values Change To UNKNOWN Or NULL When Querying V$LOGMNR_CONTENTS [ID 1307497.1]。 当在START_LOGMINER的时候指定了START_SCN并在OPTIONS中指定了DDL_DICT_TRACKING时,查询V$LOGMNR_CONTENTS视图,第一次访问可以得到正确的USERNAME、MACHINE_NAME、OS_USERNAME、SESSION_INFO等信息,但是再次查询上述列会变成NULL或者UNKNOWN。 这个BUG影响版本从10.2.0.4到11.2.0.2,在11.2.0.3中被FIXED,Oracle还提供了单独了PATCH 10129774来解决这个问题。不过其实最简单避免这个错误的方法就是在START_LOGMINER后,通过CREAT TABLE的方式将V$LOGMNR_CONTENTS视图的内容保留下来,这其实也可以避免多次扫描V$LOGMNR_CONTENTS视图造成后台进行多次的日志挖掘。

Posted in BUG | Tagged , , , , , , , , , | Leave a comment