zoukankan      html  css  js  c++  java
  • ArcSDE 数据迁移 Exception from HRESULT: 0x80041538问题及解决方案

    一、问题描述

      1、采用gdb模板文件,在ArcSDE(数据服务器)中批量创建数据库表(数据迁移)时,用到接口ESRI.ArcGIS.Geodatabase.IGeoDBDataTransfer的方法Transfer时,报错,错误为:Exception from HRESULT: 0x80041538;

      2、在自己电脑上试验没问题,数据服务器上会有该问题;

      3、由于GIS相关问题,相关帮助手册及网上搜了一会,发现几乎没这个问题的相关资料。

    二、解决方案

      1、只能从本机环境和数据服务器环境对比上着手,本机环境:Win7 旗舰中文版,Oracle 11g中文版;数据服务器环境:WinServer 2008 R2标准版(别人装的,貌似是英文版的,后来装了中文补丁包,未修改其他设置,输入中文汉字总感觉显示怪怪的),Oracle 11g英文版;

      2、怀疑是编码的问题,便拿ArcCatalog在数据服务器上创建名称为中文的表时,直接报错ORA-00911Invalid Character。于是,便可以断定是字符编码的问题。从两方面着手:

      A、操作系统问题

      windows的问题,在区域和语言设置,把非unicode编码设置为简体中文(设置完成后,重启电脑即可,再输入中文汉字就不觉得怪了)。

      

      B、Oracle数据库问题

      (1)首先查看Oracle的编码,两种方式可以查看(注册表或者sqlplus查询),这两种方式均是借鉴转载别人写的内容

      注册表查看:

      32位在:HKEY_LOCAL_MACHINESOFTWAREWOW6432NODEORACLEHOMExxNLS_LANG
      (这里是32位的应用程序在64位windows系统中,注册表位置在"WOW6432NODE"下。)
      64位在:HKEY_LOCAL_MACHINESOFTWAREORACLEHOMExxNLS_LANG
      (这里是64位的应用程序在64位windows系统中,注册表位置直接在"SOFTWARE"下。)

      Sqlplus查询:

          数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
      客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
      会话字符集环境select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

      以上两种方式,可得知数据服务器上的Oracle编码为:WE8MSWIN1252(不支持中文

      

      (2)既然知道了编码WE8MSWIN1252的问题,下面就好解决了,可参考http://blog.itpub.net/22871478/viewspace-1116638/,为了大家看的方法,我把原文转载过来了,如下:

      修改字符集为ZHS16GBK
      SQL> shutdown immediate;
      Database closed.
      Database dismounted.
      ORACLE instance shut down.
      SQL> startup mount
      ORACLE instance started.
       
      Total System Global Area  523108352 bytes
      Fixed Size                  1337632 bytes
      Variable Size             356517600 bytes
      Database Buffers          159383552 bytes
      Redo Buffers                5869568 bytes
      Database mounted.
      SQL> alter session set sql_trace=true;
     
      Session altered.
     
      SQL> alter system enable restricted session;
     
      System altered.
     
      SQL> alter system set job_queue_processes=0;
     
      System altered.
     
      SQL> alter system set aq_tm_processes=0;
     
      System altered.
     
      SQL> alter database open;
     
      Database altered.
     
      SQL> alter database character set ZHS16GBK;
      alter database character set ZHS16GBK
      *
      ERROR at line 1:
      ORA-12712: new character set must be a superset of old character set
     
     
      SQL> alter database character set internal_use ZHS16GBK;
     
      Database altered.
     
      红色部分的错误不影响
      到此修改成功,重启服务,支持中文。
     
      3、问题得以解决。
  • 相关阅读:
    刘翔那点事
    网站建站模板
    搞笑!from 饮水思源
    我de虚拟经济学系列第一章 经济危机拼命建桥
    IT民工系列——c#操作Microsoft IE,实现自动登录吧!
    商业智能的发展及其应用
    我de虚拟经济学系列第三章 常见的致富之路
    IT民工系列——c#操作EditGrid,自己做一个在线Excel数据库吧!
    Asp.net下的Singleton模式
    asp.net 控件功能小结
  • 原文地址:https://www.cnblogs.com/xiaojian1987/p/4568704.html
Copyright © 2011-2022 走看看