1

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: 変数名/番号が無効です

4

0 に答える 0