I was not able to replicate the behavior you describe. I don't have MS-SQL server, but I tried your code on a MySQL ad a SQLite table, and it works as advertised, i.e. the data comes as I expect and the field names in $sth->{NAME} contain exactly what I put in my select statement, with or without alias.
I can confirm you that fetch is actually fetching an arrayref, as you can see by yourself if you set a line with DBI->trace(4); before your loop. In my test, I get something like this:
fetch for DBD::SQLite::st fetch= [ 'xx' 'yy' 'zz' ] row1 at test_bind.pl line 24
The DBI docs give:
"fetchrow_arrayref"
$ary_ref = $sth->fetchrow_arrayref;
$ary_ref = $sth->fetch; # alias
My guess is that your DBD driver is not playing according to DBI rules.
_ _ _ _ (_|| | |(_|>< _|
In reply to Re: DBD: bind_column behviour with multiple "unnamed" columns
by gmax
in thread DBD: bind_column behviour with multiple "unnamed" columns
by olivierp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |