我需要调用一个不会返回任何数据的商店程序,所以我不需要任何水化。
当我尝试这样做时
$rsm = new \Doctrine\ORM\Query\ResultSetMapping();
$query = $this->getDoctrine()->getManager()->createNativeQuery(
"CALL SP_CARGA_LIQ(...)", $rsm );
$query->getResult();
发生异常,并带有以下消息:
警告:oci_fetch_array():ORA-24374:在获取或执行之前未定义并在/var/www/LiquidacionesWeb/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php行中获取217
有谁知道如何解决这个问题?
答案 0 :(得分:3)
在我的情况下,BEGIN
END
块中的结束通话有帮助。含义:
$query = $this->getDoctrine()->getManager()->createNativeQuery(
"BEGIN SP_CARGA_LIQ(...); END;", $rsm );
这种方式似乎是Oracle的错误,而不是Doctrine的
编辑: 你可以用更原生的方式做到这一点:
$this->getDoctrine()->getConnection()->exec("BEGIN SP_CARGA_LIQ(...); END;");