同僚跟我說他機子上的oracle不能導出資料,一直904錯誤。我就很好奇怎麼本機上的資料用oracle都不能導出呢?

可以看到确實是這樣不能導出資料,我查了下904錯誤 是因為版本的問題。于是我查了下exp工具的版本和他的oracle的版本,分别如下:
可以看到這裡的exp工具的版本是 11.2.0.1.0,我在查了下oracle的版本:
可以看到oracle的版本是11.1.0.6.0。
exp工具的版本和oracle的版本真的不一樣,而oracle版本的規則中,高版本不能導低版本伺服器的資料!!!!
這就是為什麼不能導出資料,那怎麼解決呢??
其實我大緻就知道怎麼解決了,因為安裝完oracle server後也會自己帶有exp工具的,這個exp工具的版本是和server一緻的,也就是說他的環境中的預設的exp工具是他client的exp工具,而不是server的exp工具,那麼隻要把預設的exp工具改為server的就可以了,是以把環境變量改下就OK了,怎麼改?看下面的。
之前的環境變量path下是這樣的:
path=E:\oracle11g\product\client32admin\product\11.2.0\client_1\bin;(其它省略)
根據名字可以看到指向的是client的路徑,改為指向server的路徑(E:\oracle11g\product\11.1.0\db_1\BIN)
path=E:\oracle11g\product\11.1.0\db_1\BIN;(其它省略)
之後再檢視預設的exp工具的版本
現在可以看到exp工具的預設版本是11.1.0.6.0,這樣exp工具的版本就與server一緻了,然後我們再來導之前沒導出來的schema。
可以看到現在就能夠正常的導出資料了,希望能夠幫到大家。