[Bug]ArcGIS Desktop10.1进行Join版本数据操作报:"ORA-00904: invalid identifier"

环境:

  •  OS:Windows 7 64Bit 
  •  DBMS:Oracle 11.2.0.1 64Bit
  •  ArcSDE  Version 10.1 SP1
  •  ArcGIS Desktop Version 10.1 SP1


操作步骤:

1:一个空间数据与一个属性数据 有相关的关联字段

2:两个数据导入ArcSDE

3:空间数据注册版本

4:在ArcGIS Desktop10.1 环境下进行join 操作

5:关联之后,可以在ArcGIS Desktop10.1进行放大、缩小、漫游等操作

系统会报如下错误:

One or more layers failed to draw:
 
TEST.place:  Underlying DBMS error [ORA-00904: "V__10"."PID": 标识符无效
::SELECT  V__10.st_SHAPE$, V__10.OBJECTID,  V__10.st_points,V__10.st_numpts,V__10.st_entity,V__10.st_minx,V__10.st_miny,V__10.st_maxx,V__10.st_maxy,V__10.st_minz,V__10.st_maxz,V__10.st_minm,V__10.st_maxm,V__10.st_area$,V__10.st_len$,V__10.st_rowid   FROM (SELECT 1 st_SHAPE$ ,b.OBJECTID,b.SHAPE.points as st_points,b.SHAPE.numpts as st_numpts,b.SHAPE.entity as st_entity,b.SHAPE.minx as st_minx,b.SHAPE.miny as st_miny,b.SHAPE.maxx as st_maxx,b.SHAPE.maxy as st_maxy,b.SHAPE.minz as st_minz,b.SHAPE.maxz as st_maxz,b.SHAPE.minm as st_minm,b.SHAPE.maxm as st_maxm,b.SHAPE.area as st_area$,b.SHAPE.len as st_len$,b.rowid as st_rowid  FROM TEST.place b WHERE SDE.ST_EnvIntersects(b.SHAPE,:1,:2,:3,:4) = 1  AND b.OBJECTID NOT IN (SELECT /*+ HASH_AJ */ SDE_DELETES_ROW_ID FROM TEST.D10 WHERE DELETED_AT IN (SELECT  l.lineage_id FROM SDE.state_lineages l WHERE l.lineage_name = :lineage_name1 AND l.lineage_id <= :state_id1) AND SDE_STATE_ID = 0) UNION ALL SELECT 2 st_SHAPE$ ,a.OBJECTID,a.SHAPE.points as st_points,a.SHAPE.numpts as st_numpts,a.SHAPE.entity as st_entity,a.SHAPE.minx as st_minx,a.SHAPE.miny as st_miny,a.SHAPE.maxx as st_maxx,a.SHAPE.maxy as st_maxy,a.SHAPE.minz as st_minz,a.SHAPE.maxz as st_maxz,a.SHAPE.minm as st_minm,a.SHAPE.maxm as st_maxm,a.SHAPE.area as st_area$,a.SHAPE.len as st_len$,a.rowid as st_rowid  FROM TEST.A10 a,SDE.state_lineages SL WHERE SDE.ST_EnvIntersects(a.SHAPE,:5,:6,:7,:8) = 1  AND (a.OBJECTID, a.SDE_STATE_ID) NOT IN (SELECT /*+ HASH_AJ */ SDE_DELETES_ROW_ID, SDE_STATE_ID FROM TEST.D10 WHERE DELETED_AT IN (SELECT  l.lineage_id FROM SDE.state_lineages l WHERE l.lineage_name = :lineage_name2 AND l.lineage_id <= :state_id2) AND SDE_STATE_ID > 0) AND a.SDE_STATE_ID = SL.lineage_id AND SL.lineage_name = :lineage_name3 AND SL.lineage_id <= :state_id3) V__10 LEFT OUTER  JOIN   TEST.owner ON V__10.PID = TEST.owner.PID] [DBJoin0]
 

经过与美国Esri Support的沟通确定是一个Bug,已经在ArcGIS 10.2版本解决


最新更新   用户也可以下载

ArcGIS 10.1 SP1 for (Desktop, Engine, Server) Quality Improvement Patch


http://support.esri.com/en/downloads/patches-servicepacks/view/productid/66/metaid/2064


Bug NIM-082229

Nimbus ID  NIM082229
Submitted  Jun 27, 2012 2:37 PM
Severity  Critical
Applies To  ArcGIS
Version Found  10.1
Prog Language  N/A
Server Platform  All
Client Platform  All
Database  Oracle
Locale  N/A
Status  Resolved
Version Fixed  10.2
SP Fixed  10.2

Synopsis

In ArcGIS 10.1 for Desktop, when an ArcSDE versioned layer is displayed after being joined to an ArcSDE table in Oracle, the following error is returned: "ORA-00904: invalid identifier"

Additional Status Information

N/A

Alternate Solution

Use Desktop 10 to create a join. 


 -------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

出处来自:http://blog.csdn.net/linghe301
-------------------------------------------------------------------------------------------------------





你可能感兴趣的:([Bug]ArcGIS Desktop10.1进行Join版本数据操作报:"ORA-00904: invalid identifier")