Why does DBMS_SESSION.session_trace_enable create multiple files?
This could be for at least 2 possible reasons:


Shared server architecture: SQL trace files belong to server processes, but when you use shared server architecture, your session does not have a single dedicated server process, your session can exist in several different server processes over time.
Parallel processing: when your statements run in parallel, each slave thread is a different process and as SQL trace files belong to processes, you have multiple processes running the same statement, hence the multiple trace files.


You can not force the creation of a single trace file, but you can consolidate these traces into a single file with trcsess, based on your SID, module name, action name, service or client identifier.