Yes all privileges and permissions seem to be OK.
To be more specific, the linux user (oracle) that executes sqlpls has both read and write permissions both on data directory and the input N-QUAD file.
The SQL user is the owner of the directory object and it has also been granted the SELECT privilege on external table and SELECT, UPDATE on staging table.
I think that the problem is something about the external table and the large literals of my input file (e.g., a literal consists 658KB). Because after changing the location of the external table to this file, even a simple query like counting its tuples causes the same error. On the other hand if I use a file with smaller literals everything works fine.