我想通過DBI更新Oracle中的某些記錄。這是我嘗試:Perl DBI Oracle like wilddcard
my $q = $dbh->prepare("UPDATE table SET period='$PERIOD' WHERE field LIKE '%$PERIOD_FIELD'"); $q->execute();
的問題是,在變量$ PERIOD_FIELD來是這樣的:「@@ XYZ @ ASD ASD ASD」
所以我想更新所有記錄這是場列以somthing + $ PERIOD_FIELD結尾。
當perl到達行:$q->execute();
它只是凍結,我不得不停止與ctrl + c程序運行。
我知道問題與字符%(因爲程序不會凍結,如果我刪除它),但我無法弄清楚如何正確調用腳本。
有沒有人有對我的提示? 謝謝!
在將Perl傳遞給準備之前,您是否嘗試將Perl連接到Period_Field? – xQbert 2013-04-09 14:34:41
是的,都來自perl。並且也在與oracle的oracle中。我也試圖綁定它,但迄今爲止沒有成功。 :( – 2013-04-09 14:35:38
除非出現網絡連接問題,否則我很少看到DBI調用「freeze」。如果Oracle不喜歡你的SQL,那麼你會得到一個直接的錯誤。檢查你運行Perl的主機和Oracle主機之間的防火牆。我唯一的預感是這可能是一個超級大的數據集,並且UPDATE只是永遠存在,似乎凍結了這個過程。 – Marcus 2013-04-10 01:24:18