ArcSDE10.5 For Oracle12.2的支持问题

这两天连续碰到同事问10.5对Oracle 12.2的支持问题,Esri的System Requirements里面明确10.5只支持Oracle 11.2.0.4和Oracle12.1.0.2.0两个版本。

美国给的答复是:10.5还不支持12.2,具体什么时候支持不清楚。

这两天搭建了一个linux机器,安装了Oracle 12.2,对其进行了测试。结果如下:

测试1:使用ArcGIS10.5创建企业级地理数据库,报如下错误

测试2:将已经创建好的版本是12.1.0.2.0的schema通过oracle的expdp和impdp工具迁移到新的12.2的库上,然后使用桌面进行连接,依然报上面的错误

将测试2的后台执行的sql抓出来,发现调用了如下的sql语句。

PARSING IN CURSOR #140419854666944 len=21 dep=0 uid=107 oct=3 lid=107 tim=1917364232784 hv=708348750 ad='6a4f5400' sqlid='d6r1mk4p3j2uf'
SELECT USER FROM DUAL END OF STMT PARSE #140419854666944:c=1000,e=1221,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=1388734953,tim=1917364232783 EXEC #140419854666944:c=0,e=22,mis=0,tim=1917364232917 WAIT #140419854666944: nam='sql*Net message to client' ela= 1 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1917364233009 FETCH #140419854666944:c=0,e=15,r=1,tim=1917364233077 STAT #140419854666944 id=1 cnt=1 pid=0 pos=1 obj=0 op='FAST DUAL (cr=0 pr=0 pw=0 str=1 time=2 us cost=2 size=0 card=1)' WAIT #140419854666944: nam='sql*Net message from client' ela= 323 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1917364233557 CLOSE #140419854666944:c=0,e=6,type=0,tim=1917364233621 ===================== PARSING IN CURSOR #140419854666944 len=80 dep=0 uid=107 oct=47 lid=107 tim=1917364233759 hv=1948418075 ad='73b826c0' sqlid='746w6fdu2500v' BEGIN /* ArcSDE plsql */ dbms_utility.db_version (:version,:compatibility); END;
END OF STMT PARSE #140419854666944:c=0,e=82,plh=0,tim=1917364233758 BINDS #140419854666944: 

发现只执行了两个sql语句,第一个获取用户名,第二是获取数据库的版本。从上面执行的sql语句能判断出来,ArcGIS获取oracle的版本,发现是12.2,不在支持的范围内,因此退出

测试3: 既然通过oracle的dbms_utility.db_version获取到的Oracle的版本信息,那是不是可以通过修改这个存储过程,强行让其返回12.1的信息。答案是可以的,具体过程不在此介绍,感兴趣的可以私聊。

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...