I'm writing an application that imports data into an Oracle database. My development environment is .NET 2.0, Oracle 10g Express Edition and I'm using the dotConnect provider for Oracle. There's about 100 tables of data I'm importing and it fails at about the 10th table or so. The first 10 tables have small amounts of data (under 10 rows) but this failing table has about 3000 rows. When the Update method is called, there is a long pause like the something is hung. Then after several minutes, it gives me the following error:
ORA-06550: line 887, column 354:
PLS-00123: program too large (Diana nodes)
Here's the ado code I'm using to Update the DataSets. The fully populated DataSets are passed to this function along with the name of the table to update in the database.
public override void UpdateDataSet(DataSet ds, string tableName)
{
using (OracleConnection cn = new OracleConnection(_connString))
{
cn.Open();
string sql = "select * from " + tableName;
OracleDataAdapter adp = new
OracleDataAdapter(sql, cn);
OracleCommandBuilder builder = new
OracleCommandBuilder(adp);
int rows = 0;
rows = adp.Update(ds.Tables[0]);
}
}
This code (unchanged) works when using the Oracle ODP.Net provider and the Oracle provider is able to successfully update all the tables with no errors but the dotConnect provider fails with this "Diana Nodes" error. Any idea on how to get the dotConnect provider to work?
Below is the StackTrace if that helps any. Thanks for any info.
StackTrace " at System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)\r\n at System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)\r\n at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)\r\n at System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)\r\n at System.Data.Common.DbDataAdapter.Update(DataTable dataTable)\r\n at LimStudioServiceLibrary.ServiceLibraryOracle.UpdateDataSet(DataSet ds, String tableName) in E:\Lims Forge\LimStudioServiceLibrary\ServiceLibraryOracle.cs:line 117\r\n at LimStudioExe.LocalProvider.UpdateDataSet(DataSet ds, String sql) in E:\Lims Forge\LimStudioExe\LocalProvider.cs:line 57\r\n at IServerManager.BLL.Providers.DBUpgrade.ImportMetaForTable(XmlElement oTable) in E:\iServerManager\IServerManager.BLL\DBUpgrade\DBUpgrade.cs:line 333" string