select * from DUAL where '20181201' = to_date('2018/12/01', 'yyyy/mm/dd');
つまり、'20181211'という文字列型の値と2018/12/11という日付型の値が等しいという条件が真と判定される。
……なんなんだ、この謎の仕様。
YYYYMMDD文字列に存在しない日付に該当する値を指定すると「ORA-01861: リテラルが書式文字列と一致しません」エラーが発生する。
select * from dual where '20181301' = to_date('2018/12/01', 'yyyy/mm/dd');
YYYYMMDD数値と比較すると「ORA-00932: データ型が一致しません: NUMBERが予想されましたがDATEです」エラーが発生する。
select * from DUAL where 20181201 = to_date('2018/12/01', 'yyyy/mm/dd');