我想知道是否可以在单个语句中执行多个 SQL 语句execute()
或do()
使用DBD::Oracle
via Perl调用DBI
。例子:
# Multiple SQL statements in a single query, separated by a ";"
$sql = 'UPDATE foo SET bar = 123; DELETE FROM foo WHERE baz = 456';
$sth = $dbh->prepare($sql);
$sth->execute;
# ...or...
$dbh->do($sql);
我问这个不是因为我想真正做这样的事情,而是因为我想通过成功的 SQL 注入攻击来衡量可能造成的损害。是的,我知道,不管这个问题的答案如何,仍然必须从根本上消除 SQL 注入的可能性,只使用绑定值和受信任的输入等。但问题仍然存在:是否可以DBD::Oracle
执行多个陈述?
作为一个相关示例,DBD::mysql
有一个mysql_multi_statements
明确启用此“功能”的连接选项。我无法摆脱这样一种感觉,即有一些类似的、可能是未记录的和晦涩的 Oracle OCI 选项可以通过它以某种方式访问DBD::Oracle
,从而实现相同的功能。
万一这很重要,这是:
perl
5.8.8DBD::Oracle
1.22- 甲骨文 11g (11.01.0700)