Nic*_*ick 1 php sql oracle stored-procedures procedure
我正在尝试使用以下语句从PHP运行一个非常简单的Oracle过程:
$sql = 'exec procedureName(param1, param2)';
$sql = oci_parse($connection, $sql); oci_execute($sql);
Run Code Online (Sandbox Code Playgroud)
在Oracle SQL开发人员中运行此命令会返回成功的"匿名块已完成"消息,但通过PHP运行此消息将返回"ORA-00900:无效的SQL语句"错误.
无论如何从PHP运行此过程?非常感谢
再深入一点,我认为您需要将过程调用放在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);
Run Code Online (Sandbox Code Playgroud)
您需要编辑上面的内容,以便在调用中使用适当的变量名称oci_bind_by_name.
另请注意,SQL字符串中存在分号是很重要的.
分享和享受.