我想通过DBI从Perl更新Oracle中的一些记录。这是我尝试的内容:
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停止程序运行。
我知道问题在于字符%(因为程序在我删除它时不会冻结),但我无法弄清楚如何正确调用脚本。
有人有我的提示吗? 谢谢!
答案 0 :(得分:0)
my $q = $dbh->prepare("UPDATE table SET period='$PERIOD' WHERE field LIKE chr(37)||'$PERIOD_FIELD'");
$q->execute();
答案 1 :(得分:0)
事实证明,上述所有代码都是正确的,但不幸的是桌子被Toad锁定了。 :|在Toad中执行回滚或提交或关闭Toad解决了这个问题。
感谢大家的提示,并为误导而道歉。