使用PHP执行Oracle过程 - 可能吗?

时间:2012-04-18 15:32:57

标签: php sql oracle stored-procedures procedure

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

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

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

无论如何从PHP运行此过程?非常感谢

2 个答案:

答案 0 :(得分:5)

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

分享并享受。

答案 1 :(得分:0)

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