ASP.NET - campo blob

 
Vista:

campo blob

Publicado por felix (5 intervenciones) el 19/12/2007 00:51:21
Muchachos,

quiero insertar una imagen en un campo blob ...tengo ya el procedure que lo hace sin embargo invoco a ese proceudre en una funcion de asp.net yme sale el siguiente error:

ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PRC_ADD_IMAGEN'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

COmo que no entra al store procedure...estoy mandando los parametros correctamente en el orden correspondiente, incluso el usuario con el que ingreso tiene permisos de ejecucion para ese procedure. La funcion en la que me sale el erroes la siguiente:
Public Shared Function SUBE_FOTO(ByVal ruta As String, ByVal COD_FILE As Long) As String
Dim conn As New OracleConnection(micadena)
Dim filePath As String
'Dim bigData As Byte()
Dim t As Date

t = Now

Dim cmdPerson As New OracleCommand()
cmdPerson.Connection = conn
cmdPerson.Connection.Open()
cmdPerson.CommandText = "DBMS_SESSION.SET_ROLE"
cmdPerson.CommandType = CommandType.StoredProcedure
cmdPerson.Parameters.Add(New OracleParameter("role_cmd", OracleType.VarChar)).Value = Trae_roles("")
Try
cmdPerson.ExecuteNonQuery()
cmdPerson.Parameters.Clear()
rpta = ""
Catch e As Exception
rpta = "Error al Otorgar los Permisos... " + _
Left(e.Message.Replace(Chr(10), " "), Len(e.Message.Replace(Chr(10), " ")) - 2)
End Try

filePath = ruta 'Agregue la ruta del archivo que usted desea insertar
If Not File.Exists(filePath) Then
' handle error
rpta = "El archivo no Existe"
Else
rpta = ""
End If

If rpta = "" Then
Dim fs As Stream = File.OpenRead(filePath)
Dim tempBuff(fs.Length) As Byte

fs.Read(tempBuff, 0, fs.Length)
fs.Close()
'conn.Open()

Dim tx As OracleTransaction
tx = conn.BeginTransaction()

Dim cmd As New OracleCommand()
cmd = conn.CreateCommand()

cmd.Transaction = tx

cmd.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;"
cmd.Parameters.Add(New OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()

Dim tempLob As OracleLob
tempLob = cmd.Parameters(0).Value
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite)
tempLob.Write(tempBuff, 0, tempBuff.Length)
tempLob.EndBatch()

cmd.Parameters.Clear()
cmd.CommandText = "AMDBA.Prc_Add_Imagen"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New OracleParameter("BlobParam", OracleType.Blob)).Value = tempLob
cmd.Parameters.Add(New OracleParameter("COD_FILE", OracleType.Number)).Value = COD_FILE
Try
cmd.ExecuteNonQuery()
rpta = "Imagen Agregada con Exito"
Catch e As Exception (aqui aparece el error de excepcion)
rpta = "Ocurrio un error al Subir la Imagen... " + _
Left(e.Message.Replace(Chr(10), " "), Len(e.Message.Replace(Chr(10), " ")) - 2)
End Try
tx.Commit()
End If
cmdPerson.Parameters.Clear()
cmdPerson.CommandText = "DBMS_SESSION.SET_ROLE"
cmdPerson.CommandType = CommandType.StoredProcedure
cmdPerson.Parameters.Add(New OracleParameter("role_cmd", OracleType.VarChar)).Value = Trae_roles("3")

Return rpta
End Function

Que debo hacer para corregir ese error.....Espero me puedan ayudar.

Gracais de antemano

Felix
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder