我正在尝试让 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 很长,给定字符串
该函数将参数发送到 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: 非法变量名/编号