Ok
The problem will most probably be, that the DB client you are using, will just show a RC of 0 all the time, no matter if the SQL statement issued was successful or not.
You got the same issue, if you do something with a ftp client or any other client, that works fine in terms of itself, no matter what errors you get "inside" the client. There is usually issued a 0 back to the shell as the client says "Hey man, I am fine, not my fault the commands you issued didn't work because of <insertsomethingthatwentwrong>".
Can simply check this if you add a
echo $RC after defining $RC while issuing an intentionally failing SQL statement in the line above.
I am not sure if there is any kind of option for your DB client to pass any other RC through to the shell. Could check it's documentation maybe; or grep for a pattern that shows the success/fail of the operation.
Update:
For DB2 I found that the client returns appropriate RCs:
http://publib.boulder.ibm.com/infoce...e/r0010411.htm
Just as an example that some clients do that.