Oracleでストアドプロシージャを実行するようにcodeigniterを取得しようとしています。以下を 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'] は long である必要があり、php ドキュメントでは、$param['type'] は int $type = SQLT_CHR である必要があると書かれています。
引用符なしで $param['type'] を入れてみましたが、次のエラー メッセージが表示されます。
oci_bind_by_name(): ORA-01036: 変数名/番号が無効です