ArcSDE data migration Exception from HRESULT: 0x800000038 Problem and Solution, arcsde0x800000038
I. Problem Description
1. The interface ESRI is used to create database tables (data migration) in batches in the ArcSDE (Data Server) using the gdb template file. arcGIS. geodatabase. when the Transfer method of IGeoDBDataTransfer is Transfer, an error is returned. Error: Exception from HRESULT: 0x80041538;
2. Test on your computer. This problem occurs on the data server;
3. Due to GIS problems, relevant help manuals and online searches were conducted for a while, and almost no relevant information about the problem was found.
Ii. Solutions
1. You can only compare the local environment with the data server environment. Local Environment: Win7 flagship Chinese version, Oracle 11g Chinese version; data server environment: WinServer 2008 R2 Standard Edition (installed by others, it looks like the English version. Later, I installed the Chinese patch package. I didn't modify other settings, and it seems strange to input Chinese characters.) Oracle 11g English version;
2, suspected is the encoding problem, take the ArcCatalog on the data server to create a table named Chinese, directly reported the error ORA-00911Invalid Character. Therefore, we can conclude that it is a problem of character encoding. Start from two aspects:
A. Operating System Problems
For windows, in the region and language settings, set non-unicode encoding to simplified Chinese (after the configuration is complete, restart the computer, and then enter Chinese characters, it is not surprising ).
B. Oracle Database Problems
(1) first, check the Oracle code. You can view the Oracle code in either of the two methods (registry or sqlplus query). Both methods refer to the reprinted content written by others.
View the registry:
32-bit HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432NODE \ ORACLE \ HOMExx \ NLS_LANG
(Here, the 32-bit application is in a 64-bit windows system, and the registry is located under "WOW6432NODE .)
64-bit HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ HOMExx \ NLS_LANG
(Here, a 64-bit application is in a 64-bit windows system, and the Registry location is directly under "SOFTWARE .)
Sqlplus query:
Database Server Character Set select * from nls_database_parameters, which is derived from props $ and represents the character set of the database.
Client Character Set environment select * from nls_instance_parameters, which is from v $ parameter,
Select * from nls_session_parameters in the session Character Set environment, which is derived from v $ nls_parameters, indicating the session's own settings, which may be the session environment variable or the session is completed by alter session. If the session has no special settings, it will be consistent with nls_instance_parameters.
The preceding two methods show that the Oracle code on the data server is WE8MSWIN1252 (Chinese is not supported)
(2) Now that we know the problem of WE8MSWIN1252 encoding, we can solve the problem below. For details, refer to examples:
Modify the character set to 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 setSQL> alter database character set internal_use ZHS16GBK; errors in Database altered. The red part do not affect the modification. Restart the service and support Chinese characters. 3. Solve the problem.