下面是我用来运行查询、解析结果集和解析行(分别)的代码
$exec_ret = $DBS->SQLExecSQL($STMT);
while ($DBS->SQLFetch() == *PLibdata::RET_OK)
{
$rowfetch = $DBS->{Row}->GetCharValue($colname[$i]);
}
我可以使用类似的语法获取临时表的列名/字段名吗? $colname[$i]
预定义在顶部以保存列/字段名称。现在这是硬编码的,但我宁愿通过将值推送到在解析行之前运行的循环内的 $colname
来自动化它。
最佳答案
您使用什么模块访问数据库?我不认识方法名称。
如果您使用 DBI ,你可以在执行后从语句句柄中获取列名:
my $sth = $dbh->prepare($STMT);
$sth->execute;
my $columns = $sth->{NAME_uc};
while (my $row = $sth->fetch) {
for my $i (0 .. $#$row) {
print "$columns->[$i]: $row->[$i]\n";
}
print "\n";
}
列名有 3 个版本:NAME
给出数据库返回的列名,NAME_lc
将它们全部转换为小写,NAME_uc
将它们全部转换为大写。如果您关心数据库独立性,我建议您避免使用 NAME
并使用其他两个中的一个。
关于sql - 如何使用 Perl 检索临时表的 SQL 字段名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/722088/