Updating data from subpartition when the subpartition name is unknown
you can not do in dynamically like this. partition name has to be known and the time when statement is compiled.

But you can use PARTITION FOR clause:

UPDATE TABLE T PARTITION FOR(TO_DATE('31-JAN-2007','dd-MON-yyyy')
...