----- 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