' || date_start || 'AND' || date_end || '
Results in this
BETWEEN2016-12-15AND20160901
Compared to this
'2016-12-15'
AND
'20160901'
Your query has single quotes surrounding the values in the between. In the the error output they don't. You need to modify the dynamic SQL so that they do.
David J.