ORA-21500:内部错误代码,参数:[%s],[%s],[%s],[%s],[%s],[%s],[%s],[%s]

时间:2014-09-09 09:26:41

标签: c# .net oracle oracle11g

我搜索了很多,但没有一个链接帮助我解决这个问题。我正在

  

ORA-21500:内部错误代码,参数:[%s],[%s],[%s],[%s],   使用OracleDataAdapter时,[%s],[%s],[%s],[%s]。

我使用的是11.2.0 Oracle客户端,oracle数据集是11.1.0.7.0。任何人都可以帮助我,为什么我收到此错误?我搜索的一些链接说这是由于oracle客户端和数据库不兼容。这个错误是间歇性的,调试问题没有提供太多线索。

结果StackTrace:

at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
at Oracle.DataAccess.Client.OracleDataReader.Read()
at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at Oracle.DataAccess.Client.OracleDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)

2 个答案:

答案 0 :(得分:2)

感谢您的评论。我刚刚发现这个问题是由于我在Oracle命令对象上设置的提取大小,我正在从中创建Oracle Data Adapter。一旦我停止设置命令获取大小,它就开始正常工作而没有任何问题。

答案 1 :(得分:1)

来自here

  

<强>原因

     

错误的原因是内部Oracle错误,这两者都没有   ArcGIS和ArcSDE都可以控制。当遇到错误   应用程序在SELECT中使用星号生成SQL语句   list(SELECT * FROM ...)。

     

有关Oracle错误的更多信息,请参阅Oracle   Metalink注:49375.1。

     

解决方法

     

此问题有两种可能的解决方法。确保有一个   为要素类提供空间索引和/或添加其他索引   ST_Geometry属性后的属性。

     

要使用ArcCatalog验证是否存在空间索引,请连接到   ArcSDE实例作为要素类所有者。选择功能   类。打开属性对话框。选择索引选项卡和   验证空间索引是否存在。

     

要在ArcCatalog中向要素类添加新属性,请打开   要素类属性。选择字段选项卡并添加新选项   属性。

     

一旦ST_Geometry属性不再位于   SELECT *列表,内部ORA-21500错误不再存在   遇到。