Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Ora-06502 PL/SQL Data string buffer to small

533870Sep 14 2006 — edited Sep 15 2006
Hi everyone, I did a Stored procedure on oracle 10.2.0.1 and I wan to call it from visual studio 2005 but every time I called it give me the following error:

Oracle.DataAccess.Client.OracleException ORA-06502: PL/SQL: error : buffer de cadenas de caracteres demasiado pequeño numérico o de valor
ORA-06512: en "TESO.PACK_GEN_REC_EVENTO", línea 49
ORA-06502: PL/SQL: error : buffer de cadenas de caracteres demasiado pequeño numérico o de valor
ORA-06512: en "TESO.PACK_GEN_REC_EVENTO", línea 168
ORA-06502: PL/SQL: error numérico o de valor
ORA-06512: en línea 1 at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src)
at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
at BusinessComponent.ComponenteLogico.Generar_Recibo_Usuario_General(String sCadCon, String sApePat, String sApeMat, String sNom, String& sCodigo, String sConGen, String sAno, String sSem) in E:\Alfredo\Proyectos en NET\Recibos-Convencion\BusinessComponent\BusinessComponent\ComponenteLogico.vb:line 146

It seems tnat the int32 parameters is causing conflicts, I'm attaching my stored procedure and the part of te program which call it

PROCEDURE GEN_REC_USU_GEN
(APEPAT IN VARCHAR2,
APEMAT IN VARCHAR2,
NOM IN VARCHAR2,
CODCLI IN OUT VARCHAR2,
PARCONGEN IN VARCHAR2,
PARANO IN VARCHAR2,
PARSEM IN VARCHAR2,
PARNUMREC IN OUT VARCHAR2,
PARCODERR IN OUT NUMBER,
PARMSGERR IN OUT VARCHAR2
) IS

MI_ERROR EXCEPTION;
NCODERR NUMBER;



BEGIN

TESO.PACK_GEN_REC_EVENTO.REG_ALU_GEN(APEPAT,APEMAT,NOM,CODCLI,PARANO,PARSEM,PARCODERR,PARMSGERR);

IF PARCODERR!=0 THEN
NCODERR:=1;
RAISE MI_ERROR;
END IF;

TESO.PACK_GEN_REC_EVENTO.GEN_REC_ALU('09','00',CODCLI,PARCONGEN,PARANO,PARSEM,PARNUMREC,PARCODERR,PARMSGERR);

IF PARCODERR!=0 THEN
NCODERR:=2;
RAISE MI_ERROR;
END IF;

PARCODERR:=0;

EXCEPTION
WHEN MI_ERROR THEN
IF NCODERR=1 THEN
PARMSGERR:='ERROR AL REGISTRAR ALUMNO DE PUBLICO GENERAL: '||PARMSGERR;
ELSIF NCODERR=2 THEN
PARMSGERR:='ERROR AL GENERAR EL RECIBO: '||PARMSGERR;
END IF;
ROLLBACK;
WHEN OTHERS THEN
PARCODERR:=SQLCODE;
PARMSGERR:=SQLERRM;
ROLLBACK;

END GEN_REC_USU_GEN;


/*** net program ****/

Dim OraCon As New OracleConnection(sCadCon)
Dim nCodError As Integer = 0

Dim sStoredProcedure As String = "BEGIN TESO.PACK_GEN_REC_EVENTO.GEN_REC_USU_GEN(:param1,:param2,:param3,:param4,:param5,:param6,:param7,:param8,:param9,:param10); END;"
Dim OraCom As New OracleCommand(sStoredProcedure, OraCon)

'Definiendo parámetros de entrada
Dim param1 As New OracleParameter
Dim param2 As New OracleParameter
Dim param3 As New OracleParameter
Dim param4 As New OracleParameter
Dim param5 As New OracleParameter
Dim param6 As New OracleParameter
Dim param7 As New OracleParameter
Dim param8 As New OracleParameter
Dim param9 As New OracleParameter
Dim param10 As New OracleParameter

param1 = OraCom.Parameters.Add("param1", OracleDbType.Varchar2)
param2 = OraCom.Parameters.Add("param2", OracleDbType.Varchar2)
param3 = OraCom.Parameters.Add("param3", OracleDbType.Varchar2)
param4 = OraCom.Parameters.Add("param4", OracleDbType.Varchar2)
param5 = OraCom.Parameters.Add("param5", OracleDbType.Varchar2)
param6 = OraCom.Parameters.Add("param6", OracleDbType.Varchar2)
param7 = OraCom.Parameters.Add("param7", OracleDbType.Varchar2)
param8 = OraCom.Parameters.Add("param8", OracleDbType.Varchar2)
param9 = OraCom.Parameters.Add("param9", OracleDbType.Int32)
param10 = OraCom.Parameters.Add("param10", OracleDbType.Varchar2)

param1.Direction = ParameterDirection.Input
param2.Direction = ParameterDirection.Input
param3.Direction = ParameterDirection.Input
param4.Direction = ParameterDirection.InputOutput
param5.Direction = ParameterDirection.Input
param6.Direction = ParameterDirection.Input
param7.Direction = ParameterDirection.Input
param8.Direction = ParameterDirection.InputOutput
param9.Direction = ParameterDirection.InputOutput
param10.Direction = ParameterDirection.InputOutput

param1.Value = sApePat
param2.Value = sApeMat
param3.Value = sNom
param4.Value = sCodigo
param5.Value = sConGen
param6.Value = sAno
param7.Value = sSem
param8.Value = Nothing
param9.Value = 0
param10.Value = Nothing

Try

OraCon.Open()
OraCom.ExecuteNonQuery()
OraCon.Close()
Catch ex As Exception

sMenError = param10.Value + " " + ex.ToString
OraCon.Close()
End Try

can anyone give a hint?

Regards

Alfredo Monasi
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 13 2006
Added on Sep 14 2006
4 comments
6,513 views