1

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

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

在 Oracle SQL 开发人员中运行此命令会返回成功的“匿名块已完成”消息,但通过 PHP 运行此命令会返回“ORA-00900:无效 SQL 语句”错误。

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

4

2 回答 2

6

再深入一点,我认为您需要将过程调用放在 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 字符串中分号的存在很重要。

分享和享受。

于 2012-04-18T15:42:52.680 回答
0
$sql = 'BEGIN procedureName(:param1, :param2); END;';
$stmt_id = oci_parse($connection, $sql);
oci_execute($stmt_id);
于 2018-03-08T07:12:32.853 回答