代码之家  ›  专栏  ›  技术社区  ›  Milner

当我从backticks调用sqlplus时,为什么ActivePerl 64位崩溃?

  •  3
  • Milner  · 技术社区  · 16 年前

    我们在将数据处理到Oracle数据库的Perl脚本中遇到错误。一些细节:

    • 服务器:Windows Server 2003 R2 64位
    • Perl:ActivePerl 5.10 64位,内部版本1005

    所以perl脚本连接到一个Oracle数据库,并运行SQL从另一个数据库加载数据。它通过sqlplus命令行运行SQL,如下所示:

    $resultString = `sqlplus $connectString \@sqlScript.sql $var1 $var2`;
    

    {为了保护无辜者}

    我可以在有问题的服务器上可靠地重现错误,但不能在另一个win2003 64位服务器(相同的perl安装)上重现。

    有人知道为什么系统调用(当它收到ORA-12500错误时)会使服务器崩溃吗?我还没有机会查找任何转储文件,但到目前为止,我无法在相同的基本环境下崩溃任何其他文件。

    更新: 因此确定这两个服务器(一个崩溃了,一个没有)没有修补到同一级别,也没有任何最近的更新。所以两个都被修补了,测试又在每一个上运行。以前没撞车的那辆也没撞车。那一个仍然如此。我想我会把它扔出去,以防有人在想补丁。

    1 回复  |  直到 16 年前
        1
  •  0
  •   OneSolitaryNoob    12 年前

    这是一个很老的问题,但听起来不只是Perl崩溃了,而是整个机器崩溃了。听起来Perl和数据库运行在同一台机器上。