我寫了一個腳本,並將其運行在桌面'A'上,其目標是桌面'B'上的Oracle數據庫(10g)和應用程序服務器。它運行沒有任何問題。cx_Oracle錯誤ORA-24315連接時...有時
我然後複製腳本到桌面「B」和它吐出以下:「ORA-24315:非法的屬性類型」在下面的代碼片斷:
cx_dsn = cx_Oracle.makedsn(cx_hostname, cx_port, cx_SID)
cx_connection = cx_Oracle.Connection(cx_username + '/' + cx_password + '@'+ cx_dsn)
兩臺機器被配置如下:
- 視窗7(64位)
- 32位版本的Python(的ActiveState)
- pypm安裝CX-預言(其導致版本cx_Oracle.clientv ersion()=(11,2,0,3,0) - 是的,這確實表明v11,但它對桌面'A'的10g版本有效)
然而桌面'B'有Oracle 10g和WebSphere 7安裝 - 桌面「A」沒
我已經搜查,很多人都遇到過這個問題,或者類似的,但一般的時候,唯一建議的解決方案是:
- 確保該路徑沒有引用Python庫之前的Oracle庫 - 我猜這裏的建議是,桌面B上的Oracle安裝需要考慮。所以我配置了路徑,以便它只引用Python(沒有提及Oracle等) - 這沒有幫助
- 請確保您使用的是32位版本的所有內容或64位版本的所有內容 - 我都是32位版本董事會盡可能Python有關
- 確保cx-Oracle匹配你所針對的數據庫......好吧,它看起來像我有一個問題,但...奇怪的是,該腳本在桌面上工作' A',所以我認爲它必須是桌面環境'B'。因此,我去安裝一個專用的10g版本的cx_Oracle。沒有成功。 (這個查詢https://stackoverflow.com/questions/10456598/cx-oracle-multiple-instances-of-oracle-10-and-11-plus-oracle-home沒有回答,但性質聽起來很相似)
所以我卡住了 - 有什麼建議嗎?
確保所有的變量和文字都是字節字符串而不是unicode字符串。這可能是。 –
我試過並驗證過它絕對不是unicode字符串問題。我在一臺乾淨的XP機器上重複安裝,並且它沒有連接到桌面'B'的問題,所以cx_Oracle必須從桌面'B'上的本地Oracle數據庫安裝中挑選一些東西 - 當我得到解決方案時,我會發布解決方案。 – belvoir