我在寫一個perl腳本時遇到問題。當我運行腳本時,它在prepare()之後掛起。我試圖從SQL Developer運行更新語句,它工作正常。無法在perl中執行oracle更新語句
我也試着打印出所有參數,它們是正確的。
我在這裏錯過了什麼?
my $upd = 'update ngs.pp_subscr_data set address=?, city=?, postalcode=?, kennitala=?, email=?, firstname=?, lastname=?, last_upd=systimestamp where snb=?';
my $s = $dbh->prepare ($upd) || exitError(-9802, 'Couldn\'t prepare update statement.');
$s->execute($addr, $city, $pcode, $ktala, $email, $fname, $lname, $snb) || exitError(-9803, 'Couldn\'t execute statement: ' . $s->errstr);
謝謝。
如果將'||'更改爲'或',它仍然會掛起嗎? – vol7ron 2012-03-20 17:50:12
如果你編寫'$ dbh-> do('update ... where snb =?',{RaiseError => 1},$ addr,$ city,$ pcode,$ ktala,$ email,$ fname,$ lname, $ SNB);'? – daxim 2012-03-20 17:51:06
如果將「exitError」替換爲「die」,會發生什麼情況:... ||死($ DBI :: errstr)。另外,在Oracle端進行一些會話瀏覽以查看更新是否正在運行......並且我假定您正在執行提交和斷開操作 – tbone 2012-03-20 18:05:11