Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con Procedimiento Almacenado.

Estas en el tema de Problema con Procedimiento Almacenado. en el foro de .NET en Foros del Web. Hola, estoy desarrollando una aplicacion con Visual basic 2005 Express edition y como servidor de datos Oracle Database 10g Express Edition, he desarrollado un procedimiento ...
  #1 (permalink)  
Antiguo 28/05/2008, 15:16
 
Fecha de Ingreso: abril-2008
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
Problema con Procedimiento Almacenado.

Hola, estoy desarrollando una aplicacion con Visual basic 2005 Express edition y como servidor de datos Oracle Database 10g Express Edition, he desarrollado un procedimiento almacenado para operaciones de insercion en la tabla DOCU_PLANTILLAS, si ejecuto el procedimiento almacenado en SQL*Plus o Oracle SQL Developer, trabaja bien; pero, si realizo una llamada al procedimiento desde VB2005, me genera un error:

Buffer de caracteres demasiado pequeño, numèrico o de valor.

Mi procedimiento es llamado desde VB2005 con nombres de parámetros similares a los del Procedimiento Oracle, aquí los scripts:


create or replace
PROCEDURE "SP_ADD_DOCU_PLANTILLAS"
(P_NUM_DOC_PLANTILLA number
, p_nombre_documento IN VARCHAR2
, p_aplicacion IN VARCHAR2
, p_ABREVIA_archivo IN VARCHAR2
, p_nombre_archivo IN VARCHAR2
, p_creado_por IN VARCHAR2
, p_creado_el IN DATE
, p_modificado_el IN DATE
,P_dir_doc_generado in VARCHAR2
,p_campos_documentos varchar2
) AS
LOB_bfile Bfile;
LOB_blob Blob;
BEGIN
--
--Agrega un reegistro a la tabla PADRE.
insert into DOCU_PLANTILLAS
values(p_num_doc_plantilla,
p_nombre_documento,
p_aplicacion,
p_abrevia_archivo,
empty_Blob(),
'msword/object',
p_creado_por,
p_creado_el,
p_modificado_el,
P_dir_doc_generado,
bfilename('PLANTILLASDOCSS',p_nombre_archivo)
);
SP_XTRAC_CHARS_ADD_DOCS(0,p_num_doc_plantilla,p_ca mpos_documentos,'DOCU_PLANTILLAS_CAMPOS');

/* return Archivo_BLOB into lob_blob;
lob_bfile:=bfilename('PLANTILLASDOCS','HIPOTECA ABIERTA.dot');
dbms_lob.FILEOPEN(lob_bfile,'r');
dbms_lob.loadfromfile(lob_blob,lob_bfile,dbms_lob. GETLENGTH(lob_bfile));
*/
Commit;
exception
when DUP_VAL_ON_INDEX then
raise_application_error(-20001,'Clave primaria o índice único duplicado.');

WHEN OTHERS then
raise_application_error(-20025,SQLERRM);

END SP_ADD_DOCU_PLANTILLAS;
************************************************** ***********************************************
************************************************** ***********************************************
Public Sub GrabarDocsPlantillas( _
ByVal P_NUM_DOC_PLANTILLA As Long _
, ByVal p_nombre_documento As String _
, ByVal p_aplicacion As String _
, ByVal p_ABREVIA_archivo As String _
, ByVal p_nombre_archivo As String _
, ByVal p_creado_por As String _
, ByVal p_creado_el As Date _
, ByVal p_modificado_el As Date _
, ByVal P_dir_doc_generado As String _
, ByVal p_campos_documentos As String)
REM Comandos para Stored procedures de Oracle Database.
Dim OracleCmdSP As New OracleClient.OracleCommand
Try
OracleCmdSP.CommandType = CommandType.StoredProcedure
OracleCmdSP.CommandText = "SP_ADD_DOCU_PLANTILLAS"
OracleCmdSP.Connection = OracleConexion
OracleCmdSP.Parameters.Add("P_NUM_DOC_PLANTILLA", OracleClient.OracleType.Number, 16).Value = _
P_NUM_DOC_PLANTILLA
OracleCmdSP.Parameters.Add("p_nombre_documento", OracleClient.OracleType.VarChar, 50).Value = _
p_nombre_documento
OracleCmdSP.Parameters.Add("p_aplicacion", OracleClient.OracleType.VarChar, 500).Value = _
p_aplicacion
OracleCmdSP.Parameters.Add("p_ABREVIA_archivo", OracleClient.OracleType.VarChar, 4000).Value = _
p_ABREVIA_archivo
OracleCmdSP.Parameters.Add("p_nombre_archivo", OracleClient.OracleType.VarChar, 4000).Value = _
p_nombre_archivo
OracleCmdSP.Parameters.Add("p_creado_por", OracleClient.OracleType.VarChar, 32).Value = _
p_creado_por
OracleCmdSP.Parameters.Add("p_creado_el", OracleClient.OracleType.DateTime).Value = _
p_creado_el
OracleCmdSP.Parameters.Add("p_modificado_el", OracleClient.OracleType.DateTime).Value = _
p_modificado_el
OracleCmdSP.Parameters.Add("P_dir_doc_generado", OracleClient.OracleType.VarChar, 4000).Value = _
P_dir_doc_generado
OracleCmdSP.Parameters.Add("p_campos_documentos", OracleClient.OracleType.VarChar, 4000).Value = _
p_campos_documentos

Dim RecordsAdd As Integer = OracleCmdSP.ExecuteNonQuery()
MessageBox.Show("Se agregaron " & RecordsAdd.ToString & " registros", "Atlas Doc 1.0")
OracleCmdSP.Dispose()
Catch Oraex As OracleClient.OracleException
MessageBox.Show(Oraex.Message, "Atlas Doc 1.0:[Error]", MessageBoxButtons.OK, MessageBoxIcon.Error)

End Try
End Sub
************************************************** ***********************************************
************************************************** ***********************************************
strCadenaGenerada = AtlasDocControlesOperaciones.GenerarCadenaDesdeDGV GeneraDocsPLantillas(Me.DataGridView1)
AtlasDocsProcesosBasesDeDatos.GrabarDocsPlantillas (
Long.Parse(TxtNumDocuPlantilla.Text),
Me.TxtNombrePlantillaDoc.Text _
, Me.TxtAplicacion.Text, Me.TxtAbreviatura.Text, Me.TxtNombrePlantillaDoc.Text, "DBA", _
Me.DtmPickCreadoEl.Value.Date _
, Me.DtmPickModificadoEl.Value.Date, Me.TxtRutaDelArchivo.Text, strCadenaGenerada)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:05.