Perl -check для неинициализированного значения - PullRequest
1 голос
/ 10 мая 2010

Я делаю следующее в Perl-скрипте:

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

принимает выходные данные SQL-запроса. если мне нужно проверить, не выбраны ли строки, как я могу это сделать? я хочу сделать так:

if(no rows selected)
{
do this;
}

Ответы [ 3 ]

3 голосов
/ 10 мая 2010

В скалярном контексте (например, в условии if или unless) массив оценивается числом элементов в массиве.Если ваш результирующий набор SQL не содержит строк, массив оценивается в 0 - одна разновидность фальши.

unless (@pm1_CS_missing_months){
   # No rows: do this...
}
2 голосов
/ 10 мая 2010

Я бы пошел с DBD :: Oracle .

0 голосов
/ 08 июля 2013

В основном, если вы используете sqlplus, ваш вывод будет зависеть от запроса. Например, если нет строк, соответствующих вашим критериям, и вы делаете SELECT COUNT(*) FROM TABLE, вы получите 0 в выводе. Если вы делаете SELECT * FROM TABLE, вы просто получите ответ «нет выбранных строк», который не является пустым выводом. Поэтому недостаточно проверить, является ли вывод пустым или нулевым, также проверьте, есть ли строка «строки не выбраны».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...