win安裝oracle及部分問題

安裝oracle的帖子比較多.而且一般傻瓜式安裝就好了.就不詳細記錄了.

安裝帖子:

https://blog.csdn.net/m0_38025207/article/details/81010593

大致三步.

1.點擊setup安裝oracle服務.

2.點擊net manager assistant 配置監聽.(不配置就無法遠程連接)

3.創建oracle實例.(這裏有一步指定編碼方式比較重要,建議選擇默認GBK,這步也可以在安裝的時候直接創建)

直接說一下安裝時出現的疑惑.

1.需要配置listener.ora、sqlnet.ora和tnsnames.ora嗎

https://www.jellythink.com/archives/313

到這,基本服務端就結束了.

得出的結論是.sqlnet.ora一般不會改,可以配置一些.訪問數據庫的順序

tnsnames.ora也是可有可無的.tnsnames.ora配置一些連接地址的信息.這樣訪問數據庫的時候就可以直接同過這個名字訪問了.不需要輸入ip端口

listener.ora是必須的,用來監聽本機,是否有遠程連接.

 

然後是遠程連接的客戶端.因爲一遍遠程連接客戶端比較重.基本都是用plsql和instantclient進行代替

各種帖子一般都會讓配置以下兩個環境變量

1.TNS_ADMIN  指向 instantclient下面的tnsnames.ora,文件.

經過看上面的帖子,我們明白這個步驟不是必須的.一般如果我們是直接輸入ip地址和端口號

進行訪問.那麼這裏是不用配置的,當然不配置就無法使用上面截圖的別名訪問.

2.NLS_LANG    = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

推薦這篇帖子

https://blog.csdn.net/pan_tian/article/details/7745717

nls_lang建議配置 和安裝時一樣NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

 

那麼我還是有疑問

1.NLS_LANG    的配置是服務器端配置一個. 遠程客戶端連接一個嗎,

再加上數據庫本身的編碼方式.應該是有三個值.

三個值是否應該一樣.

個人理解.nls_lang配置的作用是.他來控制oracle中數據如何在client中渲染展示.數據庫本身在安裝的時候有選擇編碼格式.配置nls_lang應該和數據庫中一樣.但服務器端一般是不需要進行配置的.因爲一般都是遠程連接.服務器端配置.試了下會對sqlplus生效,而導致亂碼.但客戶端和服務端的要一樣(圖上是服務端配置的)

 

 

2.查詢數據庫編碼sql,這三個sql有什麼區別.爲什麼有時會顯示不一樣?這個問題還以有疑惑

1.select * from nls_database_parameters;

nls_database_parameters來源於props$,是表示數據庫的字符集。在創建數據庫的時候設定的,一般不會改變.

 

2.SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET' ;

v$nls_parameters 顯示當前會話值 ,他受客戶端nls 的控制。和userenv比較類似;

 

3.select userenv('language') from dual;

Oracle 中的Userenv()

返回當前用戶環境的信息,opt可以是:

ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE

 

總的來說nls_lang是爲了解決顯示亂碼的,不影響數據庫本身編碼.數據庫是什麼.客戶端就應該配置什麼.上述解釋還是有很多不明白.大概就先這麼理解吧,只要數據庫編碼相同應該就不影響數據庫移植,nls_lang呢.只要client查詢不亂碼就好了.

 

關於國家字符集.數據庫字符集解釋

https://blog.csdn.net/clong2015/article/details/54963053

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章