【问题标题】:Executing an Oracle procedure using PHP - possible?使用 PHP 执行 Oracle 过程 - 可能吗?
【发布时间】:2012-04-30 01:36:20
【问题描述】:

我正在尝试使用以下语句从 PHP 运行一个非常简单的 Oracle 过程:

$sql = 'exec procedureName(param1, param2)';
$sql = oci_parse($connection, $sql); oci_execute($sql);

在 Oracle SQL 开发人员中运行此命令会返回成功 '匿名块已完成' 消息,但通过 PHP 运行此命令会返回 'ORA-00900: invalid SQL statement' 错误.

有没有办法从 PHP 运行这个程序?非常感谢

【问题讨论】:

  • 尝试去掉 $sql 中的“exec”。
  • 非常感谢,很好的建议,但我遇到了同样的错误

标签: php sql oracle stored-procedures procedure


【解决方案1】:

再深入一点,我认为您需要将过程调用放在 PL/SQL BEGIN-END 对中,如下所示:

$sql = 'BEGIN procedureName(:param1, :param2); END;';
$stmt_id = oci_parse($connection, $sql);
oci_bind_by_name($stmt_id, ':param1', $value1);
oci_bind_by_name($stmt_id, ':param2', $value2);
oci_execute($stmt_id);

您需要编辑以上内容,以便在调用 oci_bind_by_name 时使用任何合适的变量名称。

另请注意,SQL 字符串中存在分号很重要。

分享和享受。

【讨论】:

    【解决方案2】:
    $sql = 'BEGIN procedureName(:param1, :param2); END;';
    $stmt_id = oci_parse($connection, $sql);
    oci_execute($stmt_id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-13
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 2019-04-12
      • 2011-06-19
      • 2014-06-02
      相关资源
      最近更新 更多