찾다
데이터 베이스MySQL 튜토리얼ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题

环境: ArcGIS Desktop10.2 ArcGIS Server 10.2 ArcSDE10.2 Oracle 11.2.0.3 问题描述:根据ArcGIS10.2 的新特性,ArcGIS Server10.2可以发布原生的数据库存储的Feature Service。也就是说,我可以发布在没有任何ArcSDE环境下的使用Oracle Spatial存储的数据

环境:

ArcGIS Desktop10.2

ArcGIS  Server 10.2

ArcSDE10.2

Oracle 11.2.0.3


问题描述:根据ArcGIS10.2 的新特性,ArcGIS Server10.2可以发布原生的数据库存储的Feature Service。也就是说,我可以发布在没有任何ArcSDE环境下的使用Oracle Spatial存储的数据的Feature Service,直接编辑Oracle Spatial数据。但是我发布完相关服务,可以进行数据删除,在进行新增数据的时候没有反应。查看浏览器的F12信息,

报:Rowbuffer creation failed.

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题


但是,通过ArcGIS10.2连接非ArcSDE环境的数据库,也可以创建Oracle Spatial存储的数据,这个数据发布Feature Service 编辑数据没有任何问题。

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题

帮助上如下所示:

http://resources.arcgis.com/en/help/main/10.2/index.html#/What_s_new_in_ArcGIS_10_2/016w0000005s000000/

Publishing feature services from databases
Prior to 10.2, you could only publish a map service with feature access enabled (a feature service) to ArcGIS Server if the database contained a geodatabase. At 10.2, you can publish editable feature services from supported database management systems. See the ArcGIS database management system requirements for a list of supported databases and spatial data types.


Beginning with ArcGIS 10.2, you should use ArcGIS Server feature services to publish data from a database rather than using ArcGIS Spatial Data Server feature services, as these have been deprecated.

延伸阅读:

也就是说,我在不用安装ArcSDE库的情况下,可以使用ArcGIS Server10.2发布Oracle(Oracle Spatial)、SQLServer(Geometry、Geography)、PostgreSQL(PostGIS Geometry)存储的Feature Service。


非常纳闷,这本来是ArcGIS10.2的新特性,怎么就不能编辑呢?


经过N天的沟通和研究,我发现了一个问题。而问题出在我自己的数据上。

我的Oracle有两个实例,一个实例安装了SDE库,另一个实例就是一个非SDE库的环境,我构造的Oracle Spatial数据,是使用ArcGIS Desktop连接SDE库,创建了SDO_Geometry的要素类,然后通过Oracle的EXP/IMP的方法导入到非SDE库,这样也能达到模拟Oracle Spatial数据存储的环境,但是正是这个数据导致了相关问题。


首先我们看一下原生的Oracle Spatial数据的结构:

SQL> desc  MDSYS.SDO_GEOMETRY
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 SDO_GTYPE                                          NUMBER
 SDO_SRID                                           NUMBER
 SDO_POINT                                          MDSYS.SDO_POINT_TYPE
 SDO_ELEM_INFO                                      MDSYS.SDO_ELEM_INFO_ARRAY
 SDO_ORDINATES                                      MDSYS.SDO_ORDINATE_ARRAY

--------------------------------------------------------------------------------------------

Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


但是,在SDE环境下,通过桌面创建的Oracle Spatial数据的结构
SQL> desc wgs_p
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 OBJECTID                                  NOT NULL NUMBER(38)
 SHAPE                                              MDSYS.SDO_GEOMETRY
 SE_ANNO_CAD_DATA                                   BLOB


ArcGIS不光创建了MDSYS.SDO_GEOMETRY以外,还创建了一个SE_ANNO_CAD_DATA字段。


Tips:如果存储 CAD 和注记属性,则会向业务表中添加一个附加列。
SDO_GEOMETRY 类型无法存储 ArcGIS 存储必定支持的所有类型的几何元素。当需要存储这些元素时(由创建要素类时所指定的几何类型标记决定),ArcGIS 会向业务表中添加名为 SE_ANNO_CAD_DATA 的列。

每当 ArcGIS 检测到数据源中含有 CAD 数据时,ArcGIS 就会将 CAD 数据的简单几何表示写入 SDO_GEOMETRY 值中并将未修改的 CAD 数据写入 SE_ANNO_CAD_DATA 值中。如果数据源中不含 CAD 数据,ArcGIS 会将 SE_ANNO_CAD_DATA 值设置为 NULL。SE_ANNO_CAD_DATA 属性包含来自大量 ArcGIS 组件的数据:

  • 来自 ArcSDE CAD 客户端的 AutoCAD 或 MicroStation 数据 
  • 来自 ArcMap 的三次样条和贝塞尔曲线等参数对象 
  • 来自 ArcGIS Spatial Analyst 扩展模块的表面片 

我尝试是否是这个字段导致的问题,进行相关测试,该字段并不是导致该问题的原因。


而且我还发现,使用桌面在SDE环境下创建的带有Oracle Spatial存储的表的结构是

-- Create table
create table SDO
(
  OBJECTID         INTEGER not null,
  SHAPE            MDSYS.SDO_GEOMETRY,
  SE_ANNO_CAD_DATA BLOB
)
tablespace SDE
  pctfree 0
  initrans 4
  maxtrans 255;
-- Create/Recreate indexes 
create unique index R95_SDE_ROWID_UK on SDO (OBJECTID)
  tablespace SDE
  pctfree 0
  initrans 4
  maxtrans 255;
使用桌面,在非SDE环境下创建的Oracle Spatial存储的要素类的结构是
-- Create table
create table AAB
(
  OBJECTID INTEGER not null,
  SHAPE    MDSYS.SDO_GEOMETRY
)
tablespace ESRI
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Add comments to the columns 
comment on column AAB.OBJECTID
  is 'ESRI auto-incrementing';
-- Create/Recreate primary, unique and foreign key constraints 
alter table AAB
  add primary key (OBJECTID)
  using index 
  tablespace ESRI
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
我曾经试图去比较两者的区别,但是感觉有深层次的差别,其实是没有找到具体原因。


也就是说,非SDE环境下(ArcGIS Desktop或者SQL语句)创建的OracleSpatial存储的数据可以发布要素服务,而且可以编辑,但是在SDE环境下发布的要素类,将该表迁移到非SDE环境下发布Feature Service服务,编辑就报错。


最后,解决方法:使用该功能,建议在非SDE环境下直接创建,而不能是其他迁移过来的数据。

--------------------------------------------------------------------------------------------

Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


其他扩展:关于Oracle Spatial

将数据以Oracle Spatial进行存储,Oracle也有一个关于投影的系统表,还有一个管理这些空间数据的系统表。


关于空间数据系统表

 将 SDO_GEOMETRY 列添加到业务表时,它还会将所需的 Oracle Spatial 元数据记录添加到 USER_SDO_GEOM_METADATA 视图。此元数据包括表名称、SDO_GEOMETRY 列名称、空间参考 ID 和坐标维度信息。

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题

关于投影的系统表,可以查看MDSYS.CS_SRS,相关的SRID信息必须在该表里面,如果没有,你的数据显示就会有相关问题。

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题


关于Oracle Spatial的空间索引:

数据库中有好多的MDRT打头的表,而这些表的字段都是一样的,那这些表是做什么用呢?


MDRT_$: 用来存储与空间索引相关的信息。这些表与常规表不一样,不能做复制,删除,新建等。如果对这些表进行操作后,会导致其对应的空间索引无效,因此必须重新将该索引删除重建。
    SQL> ALTER TABLE MDRT_1F89F$ MOVE STORAGE(INITIAL 1M) ;
            ALTER TABLE MDRT_1F89F$ MOVE STORAGE(INITIAL 1M)
           ORA-30967: 不允许在路径表上直接执行操作
具体如下:


    不应当将MDRT表从一个表空间移动到另一个表空间:如果这样做,相应的空间索引将不可用,所有基于表索引的空间操作符都将失效。在这种情况下,恢复的唯一方法就是删除并重建空间索引。为了避免这些问题,应确保数据库管理员知道这个限制并在执行一些优化时不要移动MDRT表。可以在创建空间索引时使用tablespace参数来指定MDRT表需要的表存储空间。
    
    不应该删除/修改MDRT表或MDRS序列:当它们与任何空间索引都不关联时(在正常的情况下,这种情况是不能发生的),可以删除它们。可以通过检查USER_SDO_INDEX_METADATA视图来确定所有的MDRT表与用户的空间索引是否相关联。
  SQL> SELECT sdo_index_name, sdo_index_table, sdo_rtree_seq_name  FROM USER_SDO_INDEX_METADATA; 


    不应当显式地导出MDRT表:当导入一个表时,如含有空间索引的customers表,相应的空间索引信息同样被导出。在导入的过程中,空间索引(和相应的MDRT表)将被重建。不需要导入或导出任何MDRT表(或MDRS序列)。


    不应当将MDRT表复制到一个复制型数据库中:如果想复制一个用户表,如customers表,所有你要复制的就是那个customers表。你需要显式地在复制实例上创建空间索引。
 

--------------------------------------------------------------------------------------------

Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Composite Index와 여러 단일 열 인덱스를 언제 사용해야합니까?Composite Index와 여러 단일 열 인덱스를 언제 사용해야합니까?Apr 11, 2025 am 12:06 AM

데이터베이스 최적화에서 쿼리 요구 사항에 따라 인덱싱 전략을 선택해야합니다. 1. 쿼리에 여러 열이 포함되고 조건 순서가 수정되면 복합 인덱스를 사용하십시오. 2. 쿼리에 여러 열이 포함되어 있지만 조건 순서가 고정되지 않은 경우 여러 단일 열 인덱스를 사용하십시오. 복합 인덱스는 다중 열 쿼리를 최적화하는 데 적합한 반면 단일 열 인덱스는 단일 열 쿼리에 적합합니다.

MySQL에서 느린 쿼리를 식별하고 최적화하는 방법은 무엇입니까? (느린 쿼리 로그, Performance_schema)MySQL에서 느린 쿼리를 식별하고 최적화하는 방법은 무엇입니까? (느린 쿼리 로그, Performance_schema)Apr 10, 2025 am 09:36 AM

MySQL 느린 쿼리를 최적화하려면 SlowQueryLog 및 Performance_Schema를 사용해야합니다. 1. SlowQueryLog 및 Set Stresholds를 사용하여 느린 쿼리를 기록합니다. 2. Performance_schema를 사용하여 쿼리 실행 세부 정보를 분석하고 성능 병목 현상을 찾고 최적화하십시오.

MySQL 및 SQL : 개발자를위한 필수 기술MySQL 및 SQL : 개발자를위한 필수 기술Apr 10, 2025 am 09:30 AM

MySQL 및 SQL은 개발자에게 필수적인 기술입니다. 1.MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템이며 SQL은 데이터베이스를 관리하고 작동하는 데 사용되는 표준 언어입니다. 2.MYSQL은 효율적인 데이터 저장 및 검색 기능을 통해 여러 스토리지 엔진을 지원하며 SQL은 간단한 문을 통해 복잡한 데이터 작업을 완료합니다. 3. 사용의 예에는 기본 쿼리 및 조건 별 필터링 및 정렬과 같은 고급 쿼리가 포함됩니다. 4. 일반적인 오류에는 구문 오류 및 성능 문제가 포함되며 SQL 문을 확인하고 설명 명령을 사용하여 최적화 할 수 있습니다. 5. 성능 최적화 기술에는 인덱스 사용, 전체 테이블 스캔 피하기, 조인 작업 최적화 및 코드 가독성 향상이 포함됩니다.

MySQL 비동기 마스터 슬레이브 복제 프로세스를 설명하십시오.MySQL 비동기 마스터 슬레이브 복제 프로세스를 설명하십시오.Apr 10, 2025 am 09:30 AM

MySQL 비동기 마스터 슬레이브 복제는 Binlog를 통한 데이터 동기화를 가능하게하여 읽기 성능 및 고 가용성을 향상시킵니다. 1) 마스터 서버 레코드는 Binlog로 변경됩니다. 2) 슬레이브 서버는 I/O 스레드를 통해 Binlog를 읽습니다. 3) 서버 SQL 스레드는 데이터를 동기화하기 위해 Binlog를 적용합니다.

MySQL : 쉽게 학습하기위한 간단한 개념MySQL : 쉽게 학습하기위한 간단한 개념Apr 10, 2025 am 09:29 AM

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

MySQL : 데이터베이스에 대한 사용자 친화적 인 소개MySQL : 데이터베이스에 대한 사용자 친화적 인 소개Apr 10, 2025 am 09:27 AM

MySQL의 설치 및 기본 작업에는 다음이 포함됩니다. 1. MySQL 다운로드 및 설치, 루트 사용자 비밀번호를 설정하십시오. 2. SQL 명령을 사용하여 CreateAbase 및 CreateTable과 같은 데이터베이스 및 테이블을 만듭니다. 3. CRUD 작업을 실행하고 삽입, 선택, 업데이트, 명령을 삭제합니다. 4. 성능을 최적화하고 복잡한 논리를 구현하기 위해 인덱스 및 저장 절차를 생성합니다. 이 단계를 사용하면 MySQL 데이터베이스를 처음부터 구축하고 관리 할 수 ​​있습니다.

InnoDB 버퍼 풀은 어떻게 작동하며 성능에 중요한 이유는 무엇입니까?InnoDB 버퍼 풀은 어떻게 작동하며 성능에 중요한 이유는 무엇입니까?Apr 09, 2025 am 12:12 AM

innodbbufferpool은 데이터와 색인 페이지를 메모리에로드하여 MySQL 데이터베이스의 성능을 향상시킵니다. 1) 데이터 페이지가 버퍼 풀에로드되어 디스크 I/O를 줄입니다. 2) 더러운 페이지는 정기적으로 디스크로 표시되고 새로 고침됩니다. 3) LRU 알고리즘 관리 데이터 페이지 제거. 4) 읽기 메커니즘은 가능한 데이터 페이지를 미리로드합니다.

MySQL : 초보자를위한 데이터 관리의 용이성MySQL : 초보자를위한 데이터 관리의 용이성Apr 09, 2025 am 12:07 AM

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경