Warlem,
 
    Ja tive esse tipo de problema quando migramos do Oracle 9 para o 10G, no meu caso o problema ocorria em uma variavel retornada por um select, resolvi o problema colocando um TRIM na coluna do select, por exemplo: SELECT TRIM(COLUNA) FROM TABELA.
    Não sei se isso poderá resolver o seu problema tb.
 
Andrea.
----- Original Message -----
Sent: Friday, April 15, 2005 12:42 PM
Subject: [sqlwin] Erro ORACLE

Pessoal, estou com o seguinte erro na execução de uma proc:
    ORA-06502: PL/SQL: error: buffer de string de caracteres pequeno demais numérico ou de valor
    ORA-06512: em "AJURI.SP_AJ450", line 10
    ORA-06512: em line 1;
 
Alguém de vcs já teve o mesmo erro?
 
Esse erro só ocorre qdo a proc é executada pela aplicação. Estou usando o Gupta 3.1, seguem abaixo as procedures e o código, mudei os datatypes para LONG STRING(no  Gupta) e LONG(no Oracle) e mesmo assim nada.
 
Valor enviado:00000000000000AM61072004070106UUU0000000010000001905       CONSUMO                                 0601KWH   0000000000000000000000000000052070000000000000000000000000000052070000000130100000000000000000000002500N0407    
 
Function: flMD5
 Description:
 Returns
  Boolean:
 Parameters
  Long String: fp_sSting
  Receive String: fp_sMD5
 Static Variables
 Local variables
  String: lv_sString
 Actions
  !
  Call SalWaitCursor(TRUE)
  !
  Set fp_sMD5 = ""
  Set lv_sString = "AJURI.SP_AJ450(:fp_sSting, :fp_sMD5)"
  !
  If SqlPrepareSP( hSqlBase, lv_sString, STRING_Null )
   If NOT SqlExecute( hSqlBase )
    Call SqlRollbackSession( hSqlSession )
    Call SalWaitCursor(FALSE)
    Return FALSE
  !
  Call SalWaitCursor(FALSE)
  !
  Return TRUE
  !
 
CREATE OR REPLACE PROCEDURE SP_AJ450(P_STRING IN LONG, P_MD5 OUT VARCHAR2 )
IS
BEGIN
P_MD5 := crypto_md5(PTEXTO => P_STRING);
END SP_AJ450;
 
CREATE OR REPLACE FUNCTION CRYPTO_MD5( PTEXTO in LONG)
Return Varchar2
is
begin
return dbms_obfuscation_toolkit.md5( input => utl_raw.cast_to_raw( upper( PTEXTO ) ) );
end Crypto_MD5;
 
Obrigado.
 
Warlem

Responder a