我試圖在變量中存儲運行時mssql錯誤並繼續使用所有其他數據。如何將運行時mssql錯誤存儲在變量中並繼續在perl中運行?
my $sth = $dbh->prepare("exec TEST_ABC_DB.dbo.testprocedure");
$sth->execute() ;
my $db_error =$DBI::errstr; #It didn't work also I tried err and state
print "\nDB error $db_error\n";
while (@row = $sth->fetchrow_array())
{
print "Row: @row\n";
}
我用eval塊,但它也不起作用。
我的如下方法,將(樣品)
CREATE procedure testprocedure as
select 'one'
select 'three'
select 10/0
select 'five'
當我運行腳本它顯示
輸出是
Row: one
DBD::ODBC::st finish failed: [unixODBC][FreeTDS][SQL Server]Divide by zero error encountered. (SQL-22012) at testing.pl line 24.
DBI::db=HASH(0xbe79a0)->disconnect invalidates 1 active statement handle (either destroy statement handles or call finish on them before disconnecting) at testing.pl line 28.
不顯示輸出甚至three
。顯示唯一一個。
如果你想這樣做的過程本身,你可以使用在try..catch塊做異常處理。在這裏查看文檔'https:// msdn.microsoft.com/en-us/library/ms175976.aspx' –
您是否想繼續使用腳本並捕獲錯誤? – AbhiNickz
@AbhiNickz是的,我想繼續劇本。 – mkHun