# ... my $dbh = DBI->connect('dbi:Oracle:host', 'user', 'pass') || die $DBI::errstr; eval { my $db_proc = $dbh->prepare(qq| BEGIN my_procedure(:foo); END; |); $db_proc->bind_param(':foo', 'bar'); $db_proc->execute; $db_proc->finish; $dbh->commit; }; if ($@) { $dbh->rollback; } # ...