in reply to EOF problem with sqlplus on Windows

The Windows shell does not understand here-documents1. You will need to either pass in a single line or open a double pipe using IO::Open2 (or IO::Open3) to isql. My approach (when I can't use DBD::ODBC or DBD::Oracle) is to write the SQL to a tempfile and then launch sqlplus <$tempfile. I recommend using DBD::ODBC instead, if you can't install other modules - DBD::ODBC comes included with ActiveState Perl and Strawberry Perl.

Updated: Here-documents are not the problem, but the Windows shell (cmd.exe) and CreateProcess don't know and don't handle newlines in the arguments.

1 That is not related to the problem.