我正在尝试使用codeigniter在oracle中运行存储过程。我将以下内容传递给stored_procedure函数:
$param = array(array("name"=>"v_organisation_id", "value"=>1, "type"=>"OCI_B_INT", "length"=>-1));
$query = $this->db->stored_procedure("EXECUTE", "GET_ACCOMMODATION", $param);
它返回以下错误:
oci_bind_by_name()期望参数5为long,给定字符串
该函数将参数发送到oci_bind_by_name(),如下所示:
oci_bind_by_name($this->stmt_id, $param['name'], $param['value'], $param['length'], $param['type']);
它说$ param ['type']需要很长,而且在PHP文档中它说$ param ['type']需要是int $ type = SQLT_CHR。
我尝试将$ param ['type']放在没有引号的情况下,但它会给出以下错误消息:
oci_bind_by_name():ORA-01036:非法变量名称/编号