views:

63

answers:

0

I've been working for some time on an application written entirely in C# that targets Oracle databases. The idea is to provide everything that Oracle SQL Developer does, but faster, with a smaller memory footprint.

So far, I'd say I'm 90% there. But I've got one small problem, and it's annoying the $#@!$@ out of me!

I'm using ADO.NET to execute SQL that the user enters. So, say, a user prepares a CREATE OR REPLACE PROCEDURE block and then tells me to execute the script. If there's a problem with the script, the Oracle provider throws an appropriate exception, but the exception doesn't include the line number.

As you can imagine, that's very frustrating, and it leads to a lot of hunting on the end-user's behalf. Sometimes, depending on the size of the SQL block, you have to open SQL Developer, and execute the script to find the syntax error, because it will tell you what line number the error is on.

Once I get this resolved (plus a couple of minor fixes and tweaks), I hope to be able to make this application available to the masses. But this lack of an identifiable line number is VERY annoying.

Can anyone suggest a way to determine where the syntax error occurs? PL/SQL does it, Oracle SQL Developer does it, and I am not entirely certain why it's not included in the exception message. (And no, it's not in the inner exception, either.)