【发布时间】:2014-11-13 15:51:43
【问题描述】:
我有一个关于存储过程的问题,所以我保存了这个过程:
CREATE OR REPLACE PROCEDURE WELTESADMIN.TOTALFABRICATION
(SUBCONT IN VARCHAR, PROJECT IN VARCHAR, TOTALFABRICATIONRESULT OUT NUMBER) AS
BEGIN
SELECT FABRICATION.MARKING + FABRICATION.CUTTING + FABRICATION.ASSEMBLY + FABRICATION.WELDING +
FABRICATION.DRILLING + FABRICATION.FINISHING
INTO TOTALFABRICATIONRESULT
FROM FABRICATION
WHERE SUBCONT_ID = SUBCONT
AND PROJECT_NAME = PROJECT;
END;
我在 PHP 中处理,例如,
$subcontValue = "RIYANTO";
$projectValue = "PROCESSHOUSE";
$sql = "BEGIN TOTALFABRICATION(:SUBCONT, :PROJECT); END;";
$stmt = oci_parse($conn, $sql);
oci_bind_by_name($stmt, ":SUBCONT", $subcontValue);
oci_bind_by_name($stmt, ":PROJECT", $projectValue);
oci_define_by_name($stmt, "TOTALFABRICATIONRESULT", $result);
oci_execute($stmt);
echo $result;
我确信提供的所有变量都是正确的,连接正常并且可以在 SQL PLUS 中处理 相反,我在 php 端遇到了这个错误,
警告:oci_execute():ORA-06550:第 1 行,第 7 列:PLS-00306:调用“TOTALFABRICATION”时参数的数量或类型错误 ORA-06550:第 1 行,第 7 列:PL/ SQL:第 39 行 C:\xampp\htdocs\WeltesInformationCenter\newEmptyPHP.php 中的语句被忽略
【问题讨论】: