0

我想通过 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 到达 line:$q->execute();它只是冻结时,我必须使用 ctrl + c 停止程序运行。

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

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

4

2 回答 2

0
my $q = $dbh->prepare("UPDATE table SET period='$PERIOD' WHERE field LIKE chr(37)||'$PERIOD_FIELD'");
$q->execute();
于 2013-04-09T14:42:32.233 回答
0

原来上面的代码都是对的,可惜表被Toad锁了。:| 在 Toad 中执行回滚或提交或关闭 Toad 解决了该问题。

谢谢大家的提示,对误导深表歉意。

于 2013-04-12T12:01:40.253 回答