Oracle problem

Hello, I have some problem with call Oracle procedure with OUT parameter. This php code work great:




$RV = 2;

$code_o = '1';

$conn = oci_connect('user','pass','//XX.XX.XX.XX:1521/DATABASE_NAME');

$stid = oci_parse($conn, 'CALL DATABASE_NAME.PKG_NAME.PROCEDURE_NAME(:code_o,:RV)');

oci_bind_by_name($stid, ":code_o", $code_o);

oci_bind_by_name($stid, ":RV", $RV);

oci_execute($stid);

print $RV;// return need out parameter



But this code not working:




$command = Yii::$app->db->createCommand('CALL DATABASE_NAME.PKG_NAME.PROCEDURE_NAME(:code,:rv)');

$command->bindParam(":code_o", $code_o, PDO::PARAM_STR);

$command->bindParam(":RV", $RV, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT);

$command->execute();

print $RV



and I get error:




SQLSTATE[HY000]: General error: 3131 OCIStmtExecute: ORA-03131: an invalid buffer was provided for the next piece

(ext\pdo_oci\oci_statement.c:148)

The SQL being executed was: CALL DATABASE_NAME.PKG_NAME.PROCEDURE_NAME('1',2)


Error Info: Array

(

    [0] => HY000

    [1] => 3131

    [2] => OCIStmtExecute: ORA-03131: an invalid buffer was provided for the next piece

 (ext\pdo_oci\oci_statement.c:148)

)




php 5.6 (had tried php 5.5 too), yii2 v. 2.0.9

Hi,

This code may help you.





$db = Yii::$app->db;

$command = $db->createCommand('CALL DATABASE_NAME.PKG_NAME.PROCEDURE_NAME(:code,@out_rv)');

$command->bindParam(":code_o", $code_o, PDO::PARAM_STR);

$command->execute();


$RV = $db->createCommand("select @out_rv as rv;")->queryScalar();