【Oracle踩坑】遠(yuǎn)程連接和中文亂碼問題

由于很長時(shí)間沒有用Oracle,在配置時(shí)由于疏忽大意遇到了兩個(gè)典型問題,但是網(wǎng)上給出千篇一律的解決方案似乎都解決不了我的問題。Oracle服務(wù)端裝在主機(jī)中,Oracle客戶端在虛擬機(jī)中。因此我想的是直接將數(shù)據(jù)導(dǎo)入主機(jī),然后通過虛擬機(jī)連接主機(jī)獲取數(shù)據(jù)。

1. 遠(yuǎn)程連接

網(wǎng)上給出的解決方案幾乎都只談到了如何去修改客戶端的tnsnames.ora文件以正確連接到服務(wù)端,或者是配置PL/SQL的oci.dll文件位置,但我的這此都配置好后還是一直報(bào)無法找到監(jiān)聽程序的錯(cuò)誤。最后還是通過在服務(wù)端的listener.ora添加一行記錄來解決,HOST為虛擬網(wǎng)上的IP地址,在虛擬機(jī)中能ping通此IP,如下:

# listener.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.44.1)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\oracle

2.中文亂碼

由于Oracle對中文的不太友好導(dǎo)致中國用戶稍不注意就會遇到亂碼的問題,我碰到的是導(dǎo)入的數(shù)據(jù)中文都以???顯示,同樣網(wǎng)上查找一番后無非就是配置注冊表,添加環(huán)境變量,修改Oracle數(shù)據(jù)庫字符集,但是這此都開好后還是沒效果。當(dāng)我新建一張表插入中文竟然可以正常顯示,于是刪除以前的數(shù)據(jù),再進(jìn)行重新導(dǎo)入就可以解決中文亂碼的問題了。原因原來是在最初導(dǎo)入時(shí)沒有設(shè)置好字符集,雖然后面配置好了但還是無法正確顯示,因此正確做法是先設(shè)置好字符集再導(dǎo)入數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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