我搜索了很多,但没有一个链接帮助我解决这个问题。我正在
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)
答案 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错误不再存在 遇到。