尝试从 CodeIgniter PHP 执行 Oracle 存储过程时出错

Error while trying to execute an Oracle Stored Procedure from CodeIgniter PHP

提问人:Enrique 提问时间:11/8/2023 最后编辑:Enrique 更新时间:11/9/2023 访问量:37

问:

我正在使用 CodeIgniter,必须修改 SP 调用

这正在工作

$this->DBTEST = $this->load->database("oracletest", TRUE);
try {
    $params = array(
            array('name' => 'P_DNI', 'value' => $param_dni, 'type' => SQLT_CHR, 'length' => -1)
    );
    $stmt = oci_parse($this->DBTEST->conn_id, "BEGIN MYPROC(:P_DNI); END;");
    foreach ($params as $p) {
            oci_bind_by_name($stmt, $p['name'], $p['value'], $p['length']);
    }
    $res_SP = ociexecute($stmt);
    return $res_SP;
} catch (\Throwable $th) {
    return false;
}

但是当用这个修改SP CALL时,不起作用

$stmt = oci_parse($this->DBTEST->conn_id, "BEGIN MYPROC(:P_DNI,TO_DATE('01/01/2024','dd/mm/yyyy')); END;");

错误输出(不是很有帮助)是

严重性:警告消息: ociexecute():XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 文件名:model_oracle.php 行号:69

该模组在控制台等上进行了测试,并按预期工作,但在通过 codeigniter 以这种方式调用时没有

非常感谢您的任何建议

php oracle codeigniter 存储过程

评论

1赞 ADyson 11/8/2023
发生什么错误或意外行为?“不起作用”告诉我们关于这个问题几乎没有任何有用的东西
0赞 Adi 11/9/2023
如果将日期格式更改为 SP 呼叫中,会发生什么情况?它仍然出错吗?mm/dd/yyyy'
0赞 Enrique 11/9/2023
@ADyson编辑了问题以输出我遇到的错误
0赞 Enrique 11/9/2023
@Adi什么都没有,输出相同
1赞 ADyson 11/9/2023
我不是 Oracle 专家,但您可能应该编辑您的问题以显示完整的错误消息,以防有人可以帮助您。也许比 PHP 更能展示代码的 SQL 端

答: 暂无答案