I want to migrate data from oracle table to a csv file. Is there any tool for this migration?
Basically you could use the "external tables" feature with
INSERT INTO external_table SELECT * FROM normal_table. External tables are stored in CSV format on disk. If that sounds too complicated, take a look at SQLcl, which is a replacement to SQL*Plus written in Java. You could then spool output to a file and run a query like
SELECT /*csv*/ * FROM table, and your "migration" would be done.
Apart from CSV, SQLcl can also directly output as HTML, JSON, INSERT statements, and much more, plus offers a bunch of additional features. The linked article will give you a brief overview (and download link). If you're more the visual type, there's also an introductional video at YouTube.