I've been lurking through the $sth->{NAME} issues and it seems to me that the current behavior of DBD::ODBC is onerous. If dbd_describe() fails, it croaks (which is what DBD::Oracle does).
If we return a Nullsv at this point, the end application does *not* get an undef reference, rather it gets a reference to an empty array. Currently this affects calling sth->NAME on update, delete, most procedure calls, DDL statements, etc. I think I'd like having it return a null reference instead of a reference to an empty array, but I don't know how to manage that at this point. I know there was some discussion on this recently, but I couldn't find any conclusion on google. It's been a day of babysitting my three young kids, so please excuse me if I missed it ;) Regards, Jeff