【oracle使用筆記2】使用Oracle數據庫遇到的若干問題總結

一. 關於Oracle 11g數據庫在查詢表中數據顯示中文亂碼問題web

【描述】本人一開始使用的Oracle是11g版本的,用PLSQL一次查詢表中的數據時出現了中文顯示亂碼,爲此搜了許多解決辦法,最終經過下面三個步驟解決了問題

【解決】三個步驟:

    1. 查詢一下當前的字符集類型
        select userenv('language') from dual
     若不是IMPLIFIED CHINESE_CHINA.ZHS16GBK,須要去設置環境變量

    2. 個人電腦上右鍵屬性--高級系統設置--高級--環境變量,新建用戶變量: 
        變量名:NLS_LANG 
        變量值:SIMPLIFIED   CHINESE_CHINA.ZHS16GBK
        
    3. 重啓PLSQL

二. 關於數據庫被鎖的解決方法sql

【描述】整個項目開發的過程當中,許多人會同時操做數據庫,有時候不經意間會遇到本身插入SQL語句執行時,下方的顯示欄一直顯示「正在執行...」,出現這種狀況的緣由是有人操做數據庫時沒有commit,致使數據庫被鎖,本身就沒法進行增刪改數據的操做了!

【解決】殺掉當前系統的會話,經過如下三個步驟便可解決被鎖狀況:

    1.  查詢被鎖的模塊,會話
        select object_id,session_id,locked_mode from v$locked_object

    2. 查詢被鎖的用戶名,sid,seria以及其餘信息
        select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time

    3. 填寫步驟2對應的sid,serial#
        alter system kill session 'sid,serial#‘

三. Oracle數據庫長時間不使用會出現一些問題,如服務沒開完出現:Oracle initialization or shutdown inprogress數據庫

【解決】Windows的服務中找到如下服務啓動,若是跟隨系統啓動能夠設置爲自動
    OracleDBConsoleorcl
    OracleOraDb11g_home1TNSListener
    OracleServiceORCL

【服務解釋】

    OracleDBConsolexx(xx表示實例名稱,非必須啓動):Oracle數據庫控制檯服務,orcl是Oracle的實例標識,默認的實例爲orcl。在運行Enterprise Manager(企業管理器OEM)的時候,須要啓動這個服務。

    OracleOraDb11g_home1TNSListener(非必須啓動):監聽器服務,服務只有在數據庫須要遠程訪問的時候才須要。

    OracleServicexx(xx表示實例名稱,必須啓動):數據庫服務(數據庫實例),是Oracle核心服務該服務,是數據庫啓動的基礎, 只有該服務啓動,Oracle數據庫才能正常啓

【總結】
        要是隻用Oracle自帶的sql*plus的話,只要啓動OracleServiceORCL便可,要是使用PL/SQL Developer等第三方工具的話,OracleOraDb11g_home1TNSListener服務也要開啓。OracleDBConsoleorcl是進入基於web的EM必須開啓的,其他服務不多用。注:ORCL是數據庫實例名,默認的數據庫是ORCL,你能夠建立其餘的,即OracleService+數據庫名。
相關文章
相關標籤/搜索