我在perl脚本中执行以下操作:
my @pm1_CS_missing_months = `sqlplus -s $connstr \@DLmissing_months.sql`;
它接受sql查询的输出。 如果我必须检查没有选择的行,我该怎么办呢? 我想这样做:
if(no rows selected)
{
do this;
}
答案 0 :(得分:3)
在标量上下文中(例如,在if
或unless
条件中),数组求值为数组中的项数。如果您的SQL结果集不包含任何行,则该数组将计算为0 - 一种虚假的风格。
unless (@pm1_CS_missing_months){
# No rows: do this...
}
答案 1 :(得分:2)
我会选择DBD::Oracle。
答案 2 :(得分:0)
基本上如果你使用sqlplus,你的输出将取决于查询。例如,如果没有符合您条件的行并且您正在执行SELECT COUNT(*) FROM TABLE
,则输出中将得到0。如果你正在进行SELECT * FROM TABLE
,你只会回答“没有选择行”,这不是空输出。因此,检查输出是空还是零是不够的,还要检查是否有字符串“没有选择行”。