DBIばかりに目がいくと、DBDの存在を忘れてしまいがちになる。DBD::mysqlの$dbh->{'mysql_insertid'}とか、
DBD::Oracleの$sth->bind_param($field_num, $lob_value, { ora_type => ORA_CLOB })など、便利な物がたくさんある。
元は利用するRDBMSが変わってもいいようにDBIがあるはずなんだけど、DBDの機能を使ってしまうとその恩恵は受けにくくなる。とは言え、RDBMSによってサポートするSQLが大きく違っていると言う現状を考えれば、DBD側の機能を多用するデメリットは少ないように思える。