Мне нужно вызвать процедуру в базе данных Oracle. процедура такая:
procedure test
(a IN VARCHAR2
,b IN INTEGER
,c OUT DATE)
Я вызываю процедуру как
$sql="BEGIN test(:a, :b, :c); END;";
$smt = oci_parse($db, $sql);
oci_bind_by_name($smt, ':a', $a);
oci_bind_by_name($smt, ':b', $b);
oci_bind_by_name($smt, ':c', $c);
$results = oci_execute($smt);
Когда c пуст, все работает нормально. Но когда он имеет значение, я получаю эту ошибку
oci_execute(): ORA-06502: PL
/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1'
Как я могу установить тип данных как дату при вызове производителя для выходной переменной?