my $dbh; # connected elsewhere my $sqlgen = SQL::Abstract->new; my $sqldb = SQL::DB->new; $$sqldb{sqldb_dbh} = $dbh; # <- this is why I called it a hack print $sqldb->query_as_string($sqlgen->insert(atable=>{bar=>1,baz=>undef,foo=>"a string's error"})); __END__ #prints INSERT INTO foo ( bar, baz, foo) VALUES ( '1', NULL, 'a string\'s error' )