Perl DBI Oracle就像wilddcard一样

时间:2013-04-09 14:31:27

标签: oracle perl

我想通过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停止程序运行。

我知道问题在于字符%(因为程序在我删除它时不会冻结),但我无法弄清楚如何正确调用脚本。

有人有我的提示吗? 谢谢!

2 个答案:

答案 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解决了这个问题。

感谢大家的提示,并为误导而道歉。