存储过程上的php odbc_execute返回“参数数目或类型错误”

时间:2019-05-13 16:04:42

标签: php oracle stored-procedures

为Oracle存储过程执行php odbc_execute,但始终无法返回PLS-306:调用中参数的数量或类型错误。

参数1为IN,参数2和3为OUT。无论我为参数2和3尝试使用哪种参数类型,始终会得到相同的错误。我已经在网上搜索过,但是所有jsut都反驳了php手册中的内容。

$a = '05/11/2019';
$b = '';
$c = '';

$conn = @odbc_connect(dsn, userid, pwd);
$stmt    = odbc_prepare($conn, "CALL name(?,?,?)");
$success = odbc_execute($stmt, array($a, $b, $c));

有人知道如何解决吗?

1 个答案:

答案 0 :(得分:0)

  

参数1为IN,参数2和3为OUT。 无论我为参数2和3尝试使用哪种参数类型,总是会遇到相同的错误。 我已经在网上搜索了,但所有jsut都反驳了php手册中的内容。

那是您的问题,您提供的参数数量错误。请查看有关存储过程的Oracle文档。 https://docs.oracle.com/cd/B28359_01/appdev.111/b28843/tdddg_procedures.htm

您的存储过程具有3个参数-1个IN参数和2个OUT参数。在调用该过程时,您应该只提供1个参数-IN参数。

该2 OUT参数将由该过程返回给您。您不提供这些OUT参数的值-值将由该过程计算。