Oracle > Oracle DBのエラー

更新日 2014-09-23
広告
Oracle DBで発生する様々なエラーについて紹介します。

ORA-00972

SQLクエリ中で、32byteより長いテーブル名や列名を指定すると、以下のエラーが発生する。
ORA-00972: 識別子が長すぎます。
英語環境だと以下。
ORA-00972: too long identifier
名前を32byte以下に変更する必要があります。

ORA-28000

ユーザ"root"でログインしようしたときに、以下のエラーが出る場合があります。
ORA-28000: the account is locked
この場合、別のユーザでログインして、ユーザrootのロックを解除する必要があります。
$ sqlplus / as sysdba
解除するには、以下。
> alter user root account unlock;

User altered.
これでユーザrootでログインできるようになります。

ORA-28001

ユーザrootでログインしようしたら、以下のエラーが出る場合があります。
ORA-28001: the password has expired
これは、パスワード期限切れです。 sqlplusコマンドを使ってログインすれば、再設定が可能です。
-bash-3.2$ sqlplus root
Enter password: 
ERROR:
ORA-28001: the password has expired # 1度エラーが発生する。

Changing password for root
New password: 
Retype new password: 
Password changed

ホスト名の設定ミス

ホスト名の設定を間違えると、以下のようなエラーが出ます。
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test-server)(PORT=1521)))
TNS-12545: Connect failed because target host or object does not exist
 TNS-12560: TNS:protocol adapter error
  TNS-00515: Connect failed because target host or object does not exist
ホスト名を設定するファイルは、./product/11.2.0/xe/network/admin/listener.ora です。
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = test-server)(PORT = 1521))
    )
  )
上記例では test-server が、ホスト名です。 ここで設定するホスト名が、実際のホスト名と違うと、起動時に1521ポートが開きません。;

クローズされたコネクション

JDBCで、クローズ済みのコネクションを使った場合、以下のエラーが発生します。
java.sql.SQLRecoverableException: クローズされた接続です。

高負荷/コネクション数超過

JDBCで、たくさんDBに接続したりすると、以下のエラーが発生する場合があります。
Exception in thread "thread-1" java.sql.SQLRecoverableException: IO Error: Got minus one from a read call
    :
Caused by: oracle.net.ns.NetException: Got minus one from a read call
    :
また、DBが高負荷になると、以下のエラーが発生する場合もあります。
java.io.IOException: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12516, TNS:listener could not find available handler with matching protocol stack

ネットワークが不通

JDBCで、DBサーバが見つからない場合は、以下のエラーが発生します。
Exception in thread "thread-1" java.sql.SQLRecoverableException: IO Error: Unknown host specified

DBサーバがダウン

JDBCで、DBサーバは生きているけど、Oracle DBのプロセスが落ちている場合は、以下のエラーが発生します。 listenerのポート番号を間違えていると、以下のエラーが発生します。
Exception in thread "thread-1" java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
   :
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
   :
Caused by: java.net.ConnectException: Connection refused

ログインに失敗

JDBCで、Oracle DBへのログインが失敗すると、以下のエラーが発生します。
Exception in thread "thread-1" java.sql.SQLException: ORA-01017: invalid username/password; logon denied

JDBCのURLが不正

JDBCのURLが不正だと、以下のエラーが発生します。
Exception in thread "thread-1" java.sql.SQLException: 無効なOracle URLが指定されました
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system