Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JEduardo

oracle esta me retornando erro

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro é comum quando está tentando manipular diferentes tipos de dados, exemplo, uma variavel STRING inserir no campo númerico, ou quando o tamanho da coluna ou variavel é pequeno para o valor... basta fazer uma pequena revisão no seu código.Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.