ArcGis常見錯誤及解決方法


1、ArcSDE數據被鎖定后的解鎖方法

描述:(1)刪除所選對象失敗 鎖定請求與已有鎖定沖突。
         (2)在sde數據被鎖定的情況下,編輯、創建featureclass或者注冊版本的時候會報告:
Lock request conflicts with an established lock。
多半情況下關閉數據庫連接可以解決這個問題,但有時候問題依然存在。

原因:ArcSDE數據被鎖定
解決:sqlplus下查詢lock表,如果有記錄返回,那么手工刪除這些表中的記錄。
select t.*,t.rowid from sde.state_locks t;
select t.*,t.rowid from sde.object_locks t;
select t.*,t.rowid from sde.layer_locks t;
select t.*,t.rowid from sde.table_locks t;

查詢誰鎖定:
select t.*,t.rowid from sde.process_information t;

解決2:
1.關閉所有的ArcMap和ArcCatalog session。
2.開始——運行——cmd
3. 在dos下運行命令'sdemon -o kill -t all -p sde'
. 在dos下運行命令'sdemon -o info -I locks'
以上命令均不帶 ' 符號
dos窗口報告'no arcsde layer/State/Tabel/Ojbects Locks registered.
一般這種情況下就可以解鎖了

2、基礎 DBMS 錯誤  ORA-01950: 對表空間 'SYSTEM' 無權限

描述:新建用戶(默認表空間SYSTEM)后用於上傳shp,提示該錯誤
原因:對表空間權限不足,無法提交數據到該表空間
解決:對用於存儲矢量數據的用戶授權
-- Grant/Revoke role privileges
grant connect to user_name;
grant resource to user_name;
grant select_catalog_role to user_name;
-- Grant/Revoke system privileges
grant unlimited tablespace to user_name;

3、任何ArcGIS連接Oracle問題

描述:ArcMap、ArcCatalog連接Oracle失敗問題
原因:一般會直接彈出錯誤信息,若信息不全,請參考%TEMP% 目錄中的 sdedc_Oracle.log 文件以獲得更多的錯誤消息。

4、創建要素類時報錯:表已存在[ORA-00955:名稱已由現有對象使用]

方案1:
使用sde自帶的取消表注冊的命令
sdetable -o unregister -t tablename

方案2:
查詢注冊的表、列信息,刪除對應數據
SELECT * FROM sde.LAYERS WHERE "OWNER" = 'username' AND TABLE_NAME = 'classname';
SELECT * FROM sde.TABLE_REGISTRY WHERE "OWNER" = 'username' AND TABLE_NAME = 'classname';
SELECT * FROM sde.COLUMN_REGISTRY WHERE "OWNER" = 'username' AND TABLE_NAME = 'classname';
SELECT * FROM sde.GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'username' AND F_TABLE_NAME = 'classname';
SELECT * FROM sde.GDB_ITEMS WHERE "NAME" = 'username.classname';

5、ArcGIS 注冊版本長時間無響應處理案例

注冊版本的內部原理以及解決方法:
注冊版本實際上就是為要注冊的要素類創建增量表(A,D表),如果對數據集注冊版本,實際上就是對數據集下的所有要素類都創建
增量表(是一個要素一個A表一個D表),如果創建到一半無響應后直接殺進程就會出現有些要素類創建了增量表而有些沒有創建
增量表這種不一致的狀態,因此解決的方法就是手動清除這部分創建好的增量表,讓數據集處於一致的狀態。
解決步驟:
(1)清除可能存在鎖信息。
(2)清除增量表
     增量表的定義方式為A_REGISTRATION_ID和D_REGISTRATION_ID. 其中REGISTRATION_ID為SDE.TABLE_REGISTRAY表中的
REGISTRATION_ID字段的值,每張要素類一個值。根據數據集下的圖層名稱一個一個查找,知道后使用Drop table 刪除。
select registration_id from sde.table_registry where table_name=’table_name’
(3)重新注冊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM