如何使用Perl检索临时表的SQL字段名?

如何使用Perl检索临时表的SQL字段名?,sql,perl,field,Sql,Perl,Field,下面是我用来运行查询、解析结果集和解析行(分别)的代码 我可以使用类似的语法获取临时表的列/字段名吗$colname[$i]在顶部预定义,用于保存列/字段名。这现在是硬编码的,但我更愿意通过将值推送到解析行之前运行的循环内部的$colname来实现自动化。尝试运行SHOW TABLE yourtable,并将其视为一个SELECT。用于数据库访问的模块是什么?我不认识方法名 如果正在使用,则可以在执行语句句柄后从中获取列名: my $sth = $dbh->prepare($STMT);

下面是我用来运行查询、解析结果集和解析行(分别)的代码


我可以使用类似的语法获取临时表的列/字段名吗
$colname[$i]
在顶部预定义,用于保存列/字段名。这现在是硬编码的,但我更愿意通过将值推送到解析行之前运行的循环内部的
$colname
来实现自动化。

尝试运行SHOW TABLE yourtable,并将其视为一个SELECT。

用于数据库访问的模块是什么?我不认识方法名

如果正在使用,则可以在执行语句句柄后从中获取列名:

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\u lc
将它们转换为所有小写,而
NAME\u uc
将它们转换为所有大写。如果您关心数据库的独立性,我建议您避免使用
NAME
,而使用另外两个模块中的一个。

是的,我在informix上-show columns for TABLE shows the cols,我会尝试一下,感谢您的出发点,这是有意义的。不过,这很管用,希望我在其他模块中使用它-我认为这是informix固有的一个模块,但不确定。
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";
}