Windows系統(tǒng)安裝cx_Oracle、Oracle客戶端及PLSQL Developer


注:本文檔適用于Windows7 64位系統(tǒng),Python2.7 64位。


一、安裝cx_Oracle及對應(yīng)的Oracle客戶端

  1. 安裝cx_Oracle, 這個是一個Python的擴(kuò)展包,用來訪問Oracle數(shù)據(jù)庫的。Windows的安裝文件可以到http://cx-oracle.sourceforge.net/這里去下載。
  2. 下載Oracle 64位客戶端(Oracle Instant Client),這個是Python擴(kuò)展包所需要的??梢缘?a target="_blank" rel="nofollow">http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html去下載,下載后解壓到本地磁盤(例如:D:\PLSQL\instantclient_11_2_64),把路徑加入到環(huán)境變量的path中。同時在系統(tǒng)環(huán)境變量中添加NLS_LANG,值為SIMPLIFIED CHINESE_CHINA.ZHS16GBK,以便支持中文。
    注:客戶端字符集要與服務(wù)器一致,才能正確顯示數(shù)據(jù)庫的非Ascii字符,但是語言設(shè)置可以不同,因此NLS_LANG也可以設(shè)為American_American.ZHS16GBK。字符集查詢見附錄。
  3. 在D:\PLSQL\instantclient_11_2_64\NETWORK\ADMIN添加tnsnames.oRA文件。新建一個叫tnsnames.ora的文件,內(nèi)容如下:
    TESTDB= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)) (CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=TESTDB) ) ) ORACLR_CONNECTION_DATA= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)) ) (CONNECT_DATA= (SID=CLRExtProc) (PRESENTATION=RO) ) )
  4. 編寫測試代碼:
    importcx_Oracle db_conn=cx_Oracle.connect(“user/pass@tnsname.world”)

二、安裝plsql developer及其對應(yīng)Oralce客戶端

  1. 安裝PLSQL Developer,這是一個Oracle可視化軟件,用來操作Oracle數(shù)據(jù)庫。
  2. 下載Oracle 32位客戶端(Oracle Instant Client),目前plsql只支持Oracle 32客戶端??梢缘?a target="_blank" rel="nofollow">http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html去下載。下載后解壓到本地磁盤(例如:D:\PLSQL\instantclient_11_2_32),把路徑加入到環(huán)境變量的path中。
  3. 配置tnsnames.ora文件,內(nèi)容同(一、)中第3項。
  4. 啟動PLSQL,在"工具"->"首選項"->"Oralce"->"連接"中配置"Oracle主目錄名"為'D:\PLSQL\instantclient_11_2_32'和"OCI庫"為'D:\PLSQL\instantclient_11_2\oci.dll'。
  5. 在"工具"->"首選項"->"Oracle"->"登錄歷史"中配置"固定用戶",格式為"用戶名/密碼@數(shù)據(jù)庫名稱",如:"test/test@TESTDB"

三、可能會遇見的bug及解決方法

  1. 如果只安裝Oracle 32位客戶端(Oracle Instant Client),PLSQL可以正常使用,但是cx_Oracle會報錯,內(nèi)容如下:
    import cx_Oracle Traceback(most recent call last): File"",line1,in ImportError:DLL load failed:%1不是有效的Win32應(yīng)用程序。
    解決方法:
  • 安裝64位的oracle client,上述(一)(二)中描述的即為此方法。
  • 拷貝一個64位的 oci.dll 到%python_home%\Lib\site-packages 下

四、附錄

  1. 數(shù)據(jù)庫字符集查詢:select * from nls_database_parameters
  2. 客戶端字符集查詢:select * from nls_instance_parameters
  3. 會話字符集:select * from nls_session_parameters* 或 *select * from v$nls_parameters,如無特殊設(shè)置,應(yīng)與nls_instance_parameters一致。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容