First I'll give @AlexPoole cred for this. He pointed me in the right way.
I'm sitting on a windows computer and the example was from Linux. The correct input is:
set NLS_DATE_LANGUAGE=AMERICAN
Please bear in mind that you can't have any white space in the NLS_DATE_LANGUAGE=AMERICAN
. I did an settings export from the target database to see what NLS settings it used so I could replicate it. I made a simple copy and paste mistake.
The print out was done like this: NLS_DATE_LANGUAGE = "AMERICAN"
when it should be NLS_DATE_LANGUAGE=AMERICAN
.
This solved the problem with English dates transformed into Swedish dates. I guess that it should work for anyone that has a different spelling of months.
Second, To get the database to accept the time 23-APR-12 12.00.00.000000000 AM
with out generating an error was solved like this:
From: "CREATED" TIMESTAMP "DD-MON-RR HH.MI.SSXFF AM"
To: "CREATED" TIMESTAMP "DD-MON-RR HH.MI.SS.FF AM"
So to wrap this up.
To get English months (OCT, MAY etc) in to a non English database in a windows environment, use: set NLS_DATE_LANGUAGE=AMERICAN
. And the correct time format for 23-APR-12 12.00.00.000000000 AM
is "DD-MON-RR HH.MI.SS.FF AM"
.
Hope this helps anyone else.