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

标签 sql perl field

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

$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/

相关文章:

mysql - 可以在 WHERE 中执行 UPDATE 子句吗?

如果分组值在源中没有行,SQL Server 如何返回 NULL 而不是 0

sql - 获取Hive中每个单词的唯一字数

json - 安装 Perl 模块时 "Fatal error: ' EXTERN.h ' file not found"

drupal - 以编程方式创建 Drupal 7 字段组

mysql - Rails 查询选择具有不同列的最后一条记录

MySQL 在值更改时插入新行

PHP 在前端显示时更改字段值

sql-server - 多位数据库字段

windows - 如何从 Windows 上的 Perl CGI 脚本派生后台进程?