sql - ORA-01839 "date not valid for month specified" for to_date in where clause -


i have following query (bocrtntime - varchar e.g 2015-02-28 12:21:45, view_base_marix_t - view):

select bocrtntime     view_base_marix_t     to_date(substr(bocrtntime,1,10),'yyyy-mm-dd')         between (to_date ('2016-01-01', 'yyyy-mm-dd'))             , (to_date ('2016-02-01', 'yyyy-mm-dd')) 

on executing error:

ora-01839:  "date not valid month specified" 

i thought there can incorrect data in bocrtntime, execute following query:

select distinct          substr(bocrtntime,1,8),          substr(bocrtntime,9,2)   view_base_marix_t  order substr(bocrtntime,9,2); 

but looks fine: http://pastebin.com/fnjp4uau. following query executes without error:

select to_date(substr(bocrtntime,1,10),'yyyy-mm-dd')    view_base_marix_t; 

i tried add trunc() to_date() no luck. create pl/sql procedure takes 1 one item form view_base_marix_t , convert date - , works fine. ideas why error on first query?

upd: query on table used in view works fine, in view - not

upd2: have few enviroments same products, error on one

upd3: issue resolved search non valid dates in table used in view

i think might happening oracle pushing predicate underlying tables of view.

have tried run query

select to_date(substr(bocrtntime,1,10),'yyyy-mm-dd') bocrtntime my_table 

instead of querying view?

you can confirm using no_push_pred hint

select /*+ no_push_pred(view_base_marix_t) */ bocrtntime view_base_marix_t  to_date(substr(bocrtntime,1,10),'yyyy-mm-dd') between (to_date ('2016-01-01', 'yyyy-mm-dd')) , (to_date ('2016-02-01', 'yyyy-mm-dd')) 

Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -