Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal to desenvolvendo um sistema com php+oracle e estou com um probleminha.... o oracle esta me retornando este erro:
ORA-06502: PL/SQL: erro: buffer de string de caracteres pequeno demais numérico ou de valor ORA-06512: em "BADAP.SP_ATUALIZA_USUARIO", line 45
A principio eu achei que fosse erro em tamanho de variaveis, mas continua dando este erro.
aqui ta a Stored Procedure Atualiza_usuario:
create or replace procedure SP_ATUALIZA_USUARIO(vc2_nome In usuario.nome%type,vc2_apelido In usuario.apelido%type,vc2_email In usuario.apelido%type,c_nivel In usuario.nivel%type,vc2_senha In Varchar2,c_op_transacao In Char,vc2_erro_orac Out Varchar2) isvc2_erro_aplic erro_convert.msg_err_apli%type;vc2_comando Varchar2(3000);vc2_comando2 Varchar2(3000);begin Case c_op_transacao When 'I' Then INSERT INTO USUARIO(NOME,EMAIL,APELIDO,NIVEL) VALUES(vc2_nome,vc2_email,vc2_apelido,c_nivel); vc2_comando:='Create User '|| vc2_nome ||' identified by '|| vc2_senha ||' default tablespace badap temporary tablespace temp'; execute immediate vc2_comando; vc2_comando2:='grant gbadap to "'||vc2_nome||'"'; execute immediate vc2_comando2; When 'U' Then UPDATE USUARIO SET EMAIL=vc2_email, APELIDO=vc2_apelido, NIVEL=c_nivel WHERE NOME=vc2_nome; When 'E' Then DELETE USUARIO WHERE NOME=vc2_nome; vc2_comando:='Drop user "'|| vc2_nome ||'"'; execute immediate vc2_comando; End Case; Commit; vc2_erro_aplic:=Null; Exception When Others Then vc2_erro_orac:=Sqlerrm; sp_trat_erro(vc2_erro_orac,vc2_erro_aplic); end SP_ATUALIZA_USUARIO;
a linha 45 é esta -> vc2_erro_orac:=Sqlerrm;
alguem poderia me ajudar?
Carregando comentários...