ORA-06502: PL / SQL: erro numérico ou de valor: buffer da cadeia de caracteres muito pequeno - Executando usando a interface OCI
Estou completamente perplexo e não entendo o que preciso fazer para corrigir esse erro. Eu tenho um procedimento plsql que aceita uma string varchar2 e um parâmetro OUT que é um number.Can você pode me ajudar como eu estou aprendendo e novo para plsql e php.
o tipo de coluna member_name é VARCHAR2 (100) e member_id é NUMBER (20)
create or replace procedure GET_MEMBER_ID (V_MEMBER_NAME IN VARCHAR2,V_MEMBER_ID OUT NUMBER ) AS
BEGIN
SELECT member_id INTO V_MEMBER_ID
FROM mn_member WHERE member_name = V_MEMBER_NAME;
END;
/
Eu executo o procedimento armazenado acima do php da seguinte maneira
error_reporting(E_ALL);
ini_set('display_errors', 1);
$conn = oci_connect("$user","$password","$sid");
$MEMBER_ID=0;
$MEMBER_NAME='45390';
echo gettype($MEMBER_NAME), "\n";
echo gettype($MEMBER_ID), "\n";
$sql_get_member_id = "BEGIN GET_MEMBER_ID(:MEMBER_NAME,:MEMBER_ID);END;";
$stmt1 = oci_parse($conn,$sql_get_member_id);
// Bind the input parameter
oci_bind_by_name($stmt1,':MEMBER_NAME',$MEMBER_NAME);
oci_bind_by_name($stmt1,':MEMBER_ID',$MEMBER_ID);
oci_execute($stmt1);
echo "Member ID is ".$MEMBER_ID;
?>
Esta é a saída que vejo no php
número inteiro da string Aviso: oci_execute () [function.oci-execute]: ORA-06502: PL / SQL: erro numérico ou de valor: buffer da sequência de caracteres muito pequeno ORA-06512: na linha 1 em rtp2 / test.php na linha 26 Membro ID é 0