2010-05-14 6 views
0

Essayer d'insérer un grand fichier audio dans une base de données Oracle 10g et continuer à obtenir cette erreur:Comment insérer un fichier de 9 Mo dans un champ de blob en utilisant Oracle.DataAccess?

ORA-01460: unimplemented or unreasonable conversion requested

La longueur du tableau d'octets du fichier audio est 2702577. La procédure fonctionne avec des longueurs de tableau plus petites, mais pas la plus grande ceux

Voici mon code et merci!

Dim oracleConnection As New OracleClient.OracleConnection 
     Dim Cmd As New OracleClient.OracleCommand 
     Dim oracleDataAdapter As New OracleDataAdapter 

     oracleConnection.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("MasterConnectionODT") 
     Cmd.Connection = oracleConnection 
     Cmd.CommandText = "Audio.ADD_AUDIO" 
     Cmd.CommandType = CommandType.StoredProcedure 

     Dim aParam As New OracleClient.OracleParameter 
     aParam.ParameterName = "I_FACILITY_ID_C" 
     aParam.OracleType = OracleType.Char 
     aParam.Value = FacID 
     aParam.Direction = ParameterDirection.Input 
     Cmd.Parameters.Add(aParam) 

     aParam = New OracleParameter 
     aParam.ParameterName = "I_TARP_ID_N" 
     aParam.OracleType = OracleType.Number 
     aParam.Value = TarpID 
     aParam.Direction = ParameterDirection.Input 
     Cmd.Parameters.Add(aParam) 

     aParam = New OracleParameter 
     aParam.ParameterName = "I_AUDIO_BLOB" 
     aParam.OracleType = OracleType.Blob 
     aParam.Value = Audio 
     aParam.Direction = ParameterDirection.Input 
     Cmd.Parameters.Add(aParam) 


     Using oracleConnection 
      oracleConnection.Open() 
      Cmd.ExecuteNonQuery() 
     End Using 

Répondre

0

Vous ne pouvez pas transférer des paramètres supérieurs à 32 Ko dans une procédure stockée. Changez votre commande en SQL à la place. Donc, ce serait quelque chose comme:

Cmd.CommandText = "insert into yourtable values (:I_FACILITY_ID_C, :I_TARP_ID_N, :I_AUDIO_BLOB)" 
Cmd.CommandType = CommandType.Text 

Si vous rencontrez toujours des problèmes, vous essayez d'utiliser ODP.Net si vous n'êtes pas déjà.

Questions connexes