標籤:
前言
去IOE的浪潮下,很多大型公司古董級的系統還在使用IOE裝置。新東家有些年頭的系統都是使用Oracle資料庫,為了省事,新架構下的業務直接通過程式設計語言API操作Oracle資料庫,安裝相關擴充對於第一次折騰的人來說,還是會碰到不少坑,這裡做個總結。
下載Oracle用戶端Instant Client
windows只支援32位,不支援64位
http://www.oracle.com/technetwork/topics/winsoft-085727.html
解壓
直接解壓即可,無需安裝
設定環境變數
ORACLE_HOME 值為instant client所在目錄路徑
開啟
PHP oci擴充 pdo擴充
解決亂碼
亂碼產生的原因是oracle用戶端串連時跟oracle資料庫使用的編碼不一致
1 查詢資料庫使用的編碼
select * from V$NLS_PARAMETERS;
變數NLS_CHARACTERSET是資料庫使用的編碼
2 設定oracle資料庫編碼系統內容變數
NLS_LANG=American_America.ZHS16GBK
3 設定Linux系統內容變數
a.修改檔案/etc/profile
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
b.修改生效
source /etc/profile
c.查看系統變數
env | grep ‘NLS‘
後記
1 windows系統內容變數更改之後,需要重啟電腦才會生效
參考資料
【1】php串連oracle設定字元集,避免亂碼
http://blog.csdn.net/linghao00/article/details/7401802
【2】Using PHP OCI8 with 32-bit PHP on Windows 64-bit
https://blogs.oracle.com/opal/entry/using_php_oci8_with_32-bit_php
【3】ORA-12705: Cannot access NLS data files or invalid environment
http://stackoverflow.com/questions/7700330/ora-12705-cannot-access-nls-data-files-or-invalid-environment
【4】linux環境變數
http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html
http://www.cnblogs.com/Neddy/archive/2011/03/01/1968018.html
Windows安裝php Oracle擴充