OS: WIN2008 R2 SP1 X64 DB: Oracle 12C The result of the system error, find the reason, it turns out that oracle does not support some so-called spatial database ArcGIS. Come to think of it, arcGIS is not installed in the virtual machine, of course not supported.
{" ORa-28595: Extproc proxy: DLL path Is Invalid \nORA-06512: In \" sde. ST_GEOMETRY_SHAPELIB_PKG\", line 70\nORA-06512: In SDE. ST_GEOMETRY_OPERATORS \ "\", \ n line 68 "}Copy the code
But do I really need to install ArcGIS? It is still unknown whether such a huge thing can be installed successfully.
Searching on the Internet, the basic is to change the so-called listener.ora file, pointing to arcGIS DLL. I first copied a copy of ArcGIS bin from the development server to the VIRTUAL machine. The system on the development server has been running well, and its DB is Oracle 10G. When you get to the virtual machine, no; I suspect that the version of ACGIS does not support Oracle 12C, so I copied a copy of Bin that supports ArcGIS 12C, but also failed!
And I went from 17 to 21, and I saw stars, and I almost fainted! This system is deployed to demonstrate next week, tomb-sweeping Day do not want to work overtime, time is not much; And there’s another project to document. The project manager hired me, and I can’t let him down. I feel attacked on both sides!
The next day, I calmed down. I tried oracle 10G on the host machine and the result is OK. Oracle 12C has a server installed on both 12C and ArcGIS servers. Its listener.ora is not changed, but it does support SDE. Time is short, we can only find the answer later.
Note a solution that has Oracle 10G but does not have ArcGIS installed and wants to use a spatial database:
1. Copy the bin of ArcGIS to the target machine, such as C:\ArcGIS\ desktop10.0bin
Oracleproduct 10.2.0 db_1 NETWORK ADMIN listener.ora = D: oracle product 10.2.0 db_1 NETWORK ADMIN listener.ora = D: oracle product 10.2.0 db_1 NETWORK ADMIN listener
(SID_DESC = (PROGRAM = EXTPROC) (ENV = "EXTPROC_DLLS=C: ArcGIS\Desktop10.0\Bin\st_shapelib.dll") (sid__name = PLSExtProc) (ORACLE_HOME = D: \ oracle \ product \ 10.2.0 \ db_1))Copy the code
3, Restart oracle listener (just restart listener)
So, OK. You can use the SDE account to log in to Oracle and run
select sde.ST_AsText(SDE.ST_Geometry('POINT (10 10)', 0)) from dual;
Copy the code
Get the right result.
2020.05.15
For Oracle12C, it’s not that complicated. Only need to:
1) Copy st_shapelib. DLL to %ORCLE_HOME%\bin\
2) Then ensure that ST_SHAPELIB in sDE, libraries, points to the correct address
Sometimes, arcGIS software is used to directly connect Oracle to build SDE library, but the DLL path may not be correct.
2020.11.25 Note that st_shapelib. DLL should be copied to %ORCLE_HOME%\bin\ otherwise “ORA-28595: Extproc proxy: DLL path invalid” will be reported.
There are also many online tutorial. What to say to want to change the listener ora and extproc ora, want me to say, this may temporarily solve the current problem, but due to modify the default configuration of the system, and the later cause other anomalies. Just follow the defaults and change so many configurations as if the system defaults don’t make sense.
In addition, the st_shapelib. DLL, which by default points to %ORCLE_HOME%\bin\st_shapelib. DLL after oracle is installed, does not exist at this time and cannot be found in the entire Oracle installation directory. We need to copy it from arcGIS installation directory, or download it from arcGIS official website. This also shows that Oracle does not naturally support arcGIS spatial data, and arcGIS needs to expand by itself.
Speaking of which, I am reminded of the derivative data. Property data is fine, but not to SDE library, a bunch of error, data is in, but can not use. I looked at some of the company’s documents, said to set up various permissions. For now, I suspect it’s a DLL problem. Create an SDE tablespace; set the SDE libraries to point to st_shapelib.dll; import packets from other libraries that contain SDE