laptop and a wrench

Erro

IQueryDef.Evaluate causes an ArcGIS Engine console application to crash when a SQL expression with the 'AS' keyword is assigned to IQueryDef.Subfields to query a feature class in an Oracle 11g multiuser database

Última Publicação: March 21, 2019 ArcGIS for Desktop
Número de ID do Erro BUG-000120448
EnviadoFebruary 28, 2019
Última ModificaçãoJune 5, 2024
Aplica-se àArcGIS for Desktop
Versão encontrada10.2.1
Sistema OperacionalWindows OS
Versão do Sistema Operacional2008 R2 64 Bit
StatusWill Not Be Addressed

Informações Adicionais

The ability to use AS keyword in the SubFields property of a QueryDef is documented as an invalid pattern and is not supported. https://enterprise.arcgis.com/en/sdk/latest/windows/IQueryName_QueryDef.html "//Invalid sub fields //queryDef.SubFields = "max(Parcel.Area) as Max_Area";" and "IQueryDef::Subfields - This must be a comma delimited list of field names or a * to indicate all columns. Column aliases and functions are invalid."

Solução Provisória

Use an alias for IQueryDef.Subfields instead of the original attribute field name. See below for an example (SDE.DynamicProtectiveDevice is replaced with the alias "A")Instead of doing this:
queryDef.SubFields = "SDE.DynamicProtectiveDevice.FEEDERID AS FEEDERID"quesryDef.Tables = "SDE.DynamicProtectiveDevice JOIN SDE.CircuitSource ON SDE.DynamicProtectiveDevice.OBJECTID = SDE.CircuitSource.DYNAMICPROTECTIVEDEVOBJECTID";queryDef.whereClause = "SDE.DynamicProtectiveDevice.ANCILLARYROLE = 1 AND SDE.CircuitSource.DYNAMICPROTECTIVEDEVOBJECTID IS NOT NULL";
Do this:
queryDef.SubFields = "A.FEEDERID AS FEEDERID"quesryDef.Tables = "SDE.DynamicProtectiveDevice AS A JOIN SDE.CircuitSource ON SDE.DynamicProtectiveDevice.OBJECTID = SDE.CircuitSource.DYNAMICPROTECTIVEDEVOBJECTID";queryDef.whereClause = "A.ANCILLARYROLE = 1 AND SDE.CircuitSource.DYNAMICPROTECTIVEDEVOBJECTID IS NOT NULL";
The above modified query works fine on Oracle 11g and Oracle 12c Release 1.

Etapas para Reproduzir

ID do Erro: BUG-000120448

Software:

  • ArcGIS for Desktop

Seja notificado quando o status de um erro mudar

Baixe o Aplicativo de Suporte da Esri

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download