Error updating DataSet.

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
lbooker
Posts: 1
Joined: Tue 16 Dec 2008 02:28

Error updating DataSet.

Post by lbooker » Tue 16 Dec 2008 03:04

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

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Tue 16 Dec 2008 14:15

Please send me (andreyr * devart * com) the SQL query generated by our components. You can trace it using DBMonitor.

Post Reply