ArcSDE10.1升级SP1报ORA-00933: SQL command not properly ended

本文解决了一个用户在尝试将ArcSDE10.1升级到SP1版本时遇到的错误问题,错误信息为“ORA-00933: SQL命令未正确结束”。此问题源于连接字符串中的重复关键字导致的语法错误,通过更改连接参数的方式可有效解决。

今天接到一个用户咨询,询问为什么我使用ArcSDE10.1 for Oracle升级SP1提示升级失败,具体错误如下:

[Mon Sep 29 23:27:25 2014] 
ST_Geometry Schema Owner: (SDE) Type Release: 1007 
[Mon Sep 29 23:27:25 2014] Instance initialized for ((sde)) . . . 

[Mon Sep 29 23:27:25 2014] Error: Underlying DBMS error (-51). 
[Mon Sep 29 23:27:25 2014] Error: DB_arcsde_setup: Unable to connect 
[Mon Sep 29 23:27:25 2014] ORA-00933: SQL command not properly ended 

[Mon Sep 29 23:27:25 2014] ERROR installing/upgrading ArcSDE, Error = -51 


这个错误其实是ArcGIS的一个Bug。

首选大家了解一下怎么从ArcSDE 10.1升级到ArcSDE10.1 SP1。

1:将ArcGIS 10.1 for Desktop升级到10.1版本

2:ArcGIS 10.1 SP1 for Desktop直连SDE10.1(使用sde用户)

3:在升级过程中可能会提示sde用户缺乏某些升级权限,具体权限会显示在错误信息列表中,用户赋予sde用户权限即可

4:选择.sde用户——右键属性——选择Upgrade Geodatabase。升级即可


导致这个问题一个根本原因就是这应该是一个老用户会碰到的问题,因为在ArcGIS10.1版本之前,使用ArcSDE直连,连接参数通常会使用sde:oracle11g:netservicename这样的输入方式,但是在ArcSDE10.1之后,用户只需要输入netservicename或者easy connection字符串即可,前面的sde:oracle11g系统会自动添加上去,但是连接之后重新选择该连接文件的连接属性,系统又自动将sde:oracle11g的关键字添加上去,所以很多用户觉得直接写入sde:oracle11g:netservicename就可以了,其实系统会自动再添加一个sde:oracle11g,那么就会变成sde:oracle11g:sde:oracle11g:netservicename,这肯定就出现问题了。


这一段比较绕,希望大家慢慢看。


解决方案:连接属性输入netservicename或者easy connection(比如IP:1521/服务名)


Bug Number NIM086410
Submitted Nov 9, 2012 5:51 PM
Severity High
Applies To ArcSDE/Enterprise Geodatabase
Version Found 10.1 SP1
Prog Language N/A
Server Platform 
Client Platform 
Database Oracle
Locale N/A
Status 
Version Fixed N/A
SP Fixed N/A

Synopsis

Upgrading an Enterprise geodatabase using a database connection established with the traditional syntax for direct connections fails with error 'ORA-00933: SQL command not properly ended'

Additional Status Information

With the new connection dialog, the best practice is to directly user TNS name or easy connection string for the INSTANCE parameter.

Alternate Solution

Do not use the old syntax of sde:oracle11g:tnsname within the connection that is upgrading the geodatabase. Ensure that a new connection is established with one of the following:

1 - Make a connection to the Oracle geodatabase by typing only the TNSNAME in the 'Instance' textbox and the geodatabase will upgrade successfully.
OR
2 - Modify the sqlnet.ora file on the client machine to enable easy connect:
NAMES.DIRECTORY_PATH= (TNSNAMES,EZCONNECT)
Then connect to the geodatabase with the easy connect string (refer to ArcGIS 10.1 documentation) and upgrade the geodatabase.

个人出版专著,国内首部介绍企业级GIS地理数据库的技术书籍,淘宝、京东、当当、亚马逊均有销售

如果购买书籍,可以加入QQ群(78773981)将截图QQ我,邀请加入VIP群,获得更加优质服务。

微信号:arcgis_share
名称:ArcGIS技术分享
作者:李少华

优快云:http://blog.youkuaiyun.com/linghe301
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值