This is a bug in db_exec_plsql. The parsing is regexp based, and it can't handle embedded quotes. I need to change the bind emulation to walk over the query and extract the bind variables as opposed to the regexp method we now use which extracts the bind variables in one fell swoop. I discovered this bug a while back, but I haven't gotten around to fixing it. I'll see if I can fix it tomorrow.
The oracle version should be okay, since it doesn't use bind variable emulation in tcl for the db_exec_plsql function.