Oracle 10g常見錯誤及解決辦法

錯誤1、ORA-00942: table or view does not existsql

此時須要查看鏈接數據庫接口使用的的用戶名下是否存在操做的數據表,以及該用戶對該數據表操做的權限。數據庫

show user服務器

查看當前是以哪一個用戶登陸的session

conn / as sysdba 以SYS用戶登陸進數據庫oracle

此時能夠退出以數據庫鏈接的用戶名登錄。app

 

select owner,table_name from all_tables where table_name='BOOKS';接口

查看OWNER字段是誰 也就是這個表的全部者get

 

假設全部者爲yuandanit

則進行以下查詢io

select * from yuandan.books

輸出這個,這是否是說不存在books表?

 

錯誤2、ORA-32104

此爲OCCI接口Environment::createEnvironment(Environment::DEFAULT)錯誤代碼:須要設置ORACLE_HOME

 

錯誤3、ORA-12541

ORA-12541: TNS: 無監聽程序,listener監聽服務沒有開啓

在服務器端機器:

    1.保證listener已經啓動

    2.保證數據庫已經啓動。

   若是數據庫沒有啓動,用:

         Oracle 9i:

              dos>sqlplus 「/ as sysdba」

              sqlplus> startup

       命令啓動數據庫

 

      若是listener沒有啓動,用:

      lsnrctl start [listener name]

      lsnrctl status [listener name]

      命令啓動listener

 

【總結】:

oracle數據庫服務器安裝或重啓後,應該先設置ORACLE_BASE ,ORACLE_HOME ,RACLE_SID和LD_LIBRARY_PATH 環境變量。而後startup數據庫,最後執行下面命令,能夠消除以上錯誤。

 

$ ORACLE_BASE=/u01/app/oracle

$ ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1

$ export ORACLE_BASE ORACLE_HOME

$ export ORACLE_SID=gtpDB

$ export LD_LIBRARY_PATH=/u01/app/oracle/oracle/product/10.2.0/db_1/lib

 

$ emctl start dbconsole   #啓動 Oracle Enterprise Manager 數據庫控制

$ isqlplusctl start       #啓動和中止 iSQL*Plus

$ lsnrctl start           #啓動監聽器, 監聽器接受客戶端的鏈接請求

 

 

錯誤4、ORA-01013: user requested cancel of current operation

數據庫鏈接正常,但執行select、update、insert等語句操做時程序會暫停,按下ctrl-c終止程序時就會出現這個錯誤,此時要退出數據庫sqlplus鏈接端的用戶。

 

即程序中使用數據庫鏈接時

m_env->createConnection(「user」,「pass」,m_szDbName)

 

使用的這個用戶若是同時又用了sqlplus鏈接到Oracle,就會出現如上錯誤。

sqlplus端退出該用戶登錄

SQL > exit;

 

此時再運行程序則不會出現上面的錯誤。

 

也有多是表被鎖住了,將表解鎖就好了

--鎖表查詢SQL SELECT object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid;
找到被鎖定的表,解鎖
複製代碼 代碼以下:--釋放SESSION SQL:
--alter system kill session 'sid, serial#';
相關文章
相關標籤/搜索