This message means you have something wrong with your input format:
SQL> SELECT to_date('23-04-2014', 'fxdd-mm-iyyy') dd FROM DUAL;
ORA-01820: format code cannot appear in date input format
SQL> SELECT to_date('23-04-2014', 'fxdd-mm-yyyy') dd FROM DUAL;
DD
-----------
23/04/2014
Have a look at the datetime format elements, the year format iyyy
doesn't exist!