What is the maximum statement length in Oracle

There is no fixed number. See "Logical Database Limits": http://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm

"The limit on how long a SQL statement can be depends on many factors, including database configuration, disk space, and memory".

You might also be affected by other limits, such as the maximum levels of subqueries.

Given that the maximum length of PL/SQL procedures is given as 2000-3000 lines, my feeling is that you may run into problems with a 3M bytes query. I also think that if it works at all, the parse time will be "interesting".