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