Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Masalah memanggil prosedur tersimpan dari C # dengan CLOB besar

Saya menemukan bahwa ada ada cara lain untuk mengatasi masalah! Rekan kerja saya menyelamatkan hari saya dengan mengarahkan saya ke blog ini, yang mengatakan:

Tetapkan nilai parameter ketikaBeginTransaction telah dipanggil di DbConnection.

Mungkinkah lebih sederhana? Blog terkait dengan Oracle.DataAccess , tetapi berfungsi dengan baik untuk System.Data.OracleClient .

Dalam praktiknya ini berarti:

varcmd = new OracleCommand("LoadXML", _oracleConnection);
cmd.CommandType = CommandType.StoredProcedure;

var xmlParam = new OracleParameter("XMLFile", OracleType.Clob);
cmd.Parameters.Add(xmlParam);

// DO NOT assign the parameter value yet in this place

cmd.Transaction = _oracleConnection.BeginTransaction();
try
{
    // Assign value here, AFTER starting the TX
    xmlParam.Value = xmlWithWayMoreThan4000Characters;

    cmd.ExecuteNonQuery();
    cmd.Transaction.Commit();
}
catch (OracleException)
{
    cmd.Transaction.Rollback();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara melewatkan nama tabel sebagai parameter ke prosedur tersimpan?

  2. Oracle 10g - optimalkan DI MANA BUKAN NULL

  3. ORA-00257:kesalahan pengarsipan. Hubungkan internal saja, sampai dibebaskan.

  4. Bagaimana cara mengubah nilai yang dipisahkan koma menjadi baris di Oracle?

  5. Mencoba menyebarkan aplikasi Oracle-ADF ke Tomcat 7