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 まで。