【问题标题】:How can I handle with DBI this command "set Pagesize 50"如何使用 DBI 处理此命令“set Pagesize 50”
【发布时间】:2016-01-31 09:39:23
【问题描述】:

您好,我正在尝试使用 DBI 设置 Pagesize,但脚本未通过任何建议,我该如何使用 DBI 进行处理:

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

有错误:

DBD::Oracle::db 失败:ORA-00900:无效的 SQL 语句(DBD 错误:错误可能在'>" SET 中字符 1 处的 > 指示符附近 PAGESIZE 50" ') [for Statement "" SET PAGESIZE 50" "] at run.pl 第 9 行 DBD::Oracle::db do failed: ORA-00900: invalid SQL statement (DBD 错误:错误可能在 > 指示符附近的字符 1 ' >" SET PAGESIZE 50" ') [for Statement "" SET PAGESIZE 50" "] at run.pl 第 9 行。

有什么想法吗?

【问题讨论】:

    标签: perl dbi


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你在关于事故的声明中引用了两次。

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

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

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

      【讨论】:

        猜你喜欢
        • 2015-01-08
        • 2010-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-01
        • 2014-11-30
        相关资源
        最近更新 更多