代码之家  ›  专栏  ›  技术社区  ›  Vijay

perl-检查未初始化的值

  •  1
  • Vijay  · 技术社区  · 14 年前

    我正在用Perl脚本执行以下操作:

    my @pm1_CS_missing_months = `sqlplus -s $connstr \@DLmissing_months.sql`;
    

    它接受SQL查询的输出。 如果我必须检查是否没有选择行,我该怎么做? 我想这样做:

    if(no rows selected)
    {
    do this;
    }
    
    3 回复  |  直到 14 年前
        1
  •  3
  •   FMc TLP    14 年前

    在标量上下文中(例如, if unless 条件),数组的计算结果为数组中的项数。如果您的SQL结果集不包含任何行,那么数组的计算结果将为0——一种错误的味道。

    unless (@pm1_CS_missing_months){
       # No rows: do this...
    }
    
        2
  •  2
  •   René Nyffenegger    14 年前

    我会去 DBD::Oracle .

        3
  •  0
  •   MariusM    11 年前

    基本上,如果您使用的是sqlplus,那么您的输出将取决于查询。例如,如果没有符合条件的行,并且您正在执行 SELECT COUNT(*) FROM TABLE ,您将在输出中获得0。如果你在做 SELECT * FROM TABLE 您只会得到答案“没有选择行”,这不是空输出。因此,检查输出是否为空或零是不够的,还要检查是否有字符串“没有选择行”。