Legacy Win32 app (Delphi) uses OLEDB to work with Oracle. It executes tons of SQL through Delphi TAdoQuery and has been working with no failure for several years on many machines (32-bit, 64-bit, server, desktop etc).
Recently just on one Windows Server 2008 R2 (64-bit) we started getting “ORA-00911: invalid character” error. It is generated when executing a query which has 2 “delete from” statements separated by semicolon. As the syntax is dead-simple, the only character that could be invalid is semicolon. We did some tests and, clearly, semicolon separating 2 statements in a single query is the issue. When we break that statement into 2 separate queries everything works. But identical code (with semicolon) is running on many other computers against the same Oracle Server (32-bit 11g) and there is no issue at all. We reinstalled ODAC components and upgraded it to newest version, updated Windows, made sure Windows Regional Settings are identical to other machines but nothing helped. The application is large and legacy and refactoring SQL-related code throughout is not an option.
Any clues would be greatly appreciated
– thank you very much.