我如何使用 DBI 处理此命令 "set Pagesize 50"

How can I handle with DBI this command "set Pagesize 50"

您好,我正在尝试使用 DBI 设置页面大小,但脚本无法通过任何建议,我该如何使用 DBI 处理此问题:

$dbh=DBI->connect( "dbi:Oracle:", "", "", { ora_session_mode =>
ORA_SYSDBA , RaiseError => 1, PrintError => 1 } );
$dbh->do(qq{ " SET PAGESIZE 50"   } );

有错误:

DBD::Oracle::db do failed: ORA-00900: invalid SQL statement (DBD ERROR: error possibly near <> indicator at char 1 in ' <>" SET PAGESIZE 50" ') [for Statement " " SET PAGESIZE 50" "] at run.pl line 9. DBD::Oracle::db do failed: ORA-00900: invalid SQL statement (DBD ERROR: error possibly near <> indicator at char 1 in ' <>" SET PAGESIZE 50" ') [for Statement " " SET PAGESIZE 50" "] at run.pl line 9.

有什么想法吗?

这不是实际的 SQL 命令,它是 Oracle SQLPLUS 客户端的配置命令,不会发送到服务器。您没有使用 SQLPLUS,使用 DBI 发出该命令没有任何意义。

您在该声明中无意中引用了两次内容。

所以 oracle 看到这个命令被发送给它:" SET PAGESIZE 50"

qq{} 本质上是在 perl 中使用双引号的另一种方法,这样您就不必在内部转义双引号。所以把里面的双引号去掉就好了(或者用双引号代替qq,但是,因为有时候SQL需要双引号,所以用括号更安全)

$dbh->do( qq{SET PAGESIZE 50} );