Я пытаюсь проверить соединение sql с помощью команды sqlplus в perl. Для этого я использовал следующий код.Выполнение команды sqlplus в perl
print "Befores\n";
$rc=system("sqlplus system/system @sqlfile.sql");
print "After $rc\n";
sleep(10);
Значение возврата в rc равно 0 на этот раз. Но когда я даю неправильные учетные данные. Файл sqlfile.sql содержит единственную команду sql 'EXIT'.
$rc=system("sqlplus systemabc/system @sqlfile.sql");
Это также заканчивается кодом возврата 0. Но ручное выполнение учетных данных неверно. Помогите мне в решении этой проблемы ...
Заранее спасибо. :)
Согласно http://perldoc.perl.org/functions/system.html, $? может предоставить вам информацию, которую вы ищете. –
Является ли '@ sqlfile' фактическим массивом Perl, который вы пытаетесь интерполировать, или это ошибка, которую вы сделали? Вы должны использовать 'use strict; использовать предупреждения, 'ловить ошибки, подобные этому. Кроме того, 'system' не возвращает результат команды, он возвращает статус выхода. Если вы хотите вывод, используйте обратные ссылки или 'qx()'. – TLP
@TLP: Согласно http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch3.htm#sthref798, OP использует правильный синтаксис, чтобы sqlplus выполнял команды sql в файле sqlfile файла. SQL. –