I have never heard of just plain fetch, even if I only need a single cell out of the database I will use fetchrow() and its friends. Works for me all the time. Have you tried switching from DBD::ODBC to DBD::Oracle? I have encountered unexpected behavior with DBD::ODBC in the past.