LoginSignup
0
1

More than 3 years have passed since last update.

Oracle ORA- エラーメッセージ一覧 PL/SQL list_ORA_errors.sql

Last updated at Posted at 2018-02-09
V$INSTANCE, V$NLS_PARAMETERS SELECT 権があるスキーマで実行するか、
あらかじめSYSスキーマから
GRANT SELECT ON V_$INSTANCE TO PUBLIC or 当コードを実行するスキーマ ;
GRANT SELECT ON V_$NLS_PARAMETERS TO PUBLIC or 当コードを実行するスキーマ ;
list_ORA_errors.sql
--
--  Oracle ORA- エラーメッセージ一覧
--
--  銀行などインターネットに接続できない環境で開発・保守する時使えるとちょっと便利
--
-- English
ALTER SESSION SET NLS_LANGUAGE = AMERICAN ;
-- Japanese
-- ALTER SESSION SET NLS_LANGUAGE = JAPANESE ;
--
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING ON
SET LINESIZE 150
SET PAGESIZE 50000
SET SERVEROUTPUT ON SIZE UNLIMITED
SET TERMOUT OFF
SET TRIMSPOOL ON
-- SPOOL pass includes VERSION and LANGUAGE
COLUMN VERSIONS NEW_VALUE VERSIONS
SELECT REPLACE(VI.VERSION, '.', '_') || '_' AS VERSIONS
FROM V$INSTANCE VI
-- Windows ↑,  UNIX/Linux では ↓ を有効に
FROM V\$INSTANCE VI
;
COLUMN LANGUAGES NEW_VALUE LANGUAGES
SELECT NP.VALUE AS LANGUAGES
FROM V$NLS_PARAMETERS NP
-- Windows ↑,  UNIX/Linux では ↓ を有効に
-- FROM V\$NLS_PARAMETERS NP
WHERE NP.PARAMETER = 'NLS_LANGUAGE' ;
SPOOL list_ORA_errors_&&VERSIONS&&LANGUAGES..log
-- Windows ↑,  UNIX/Linux では ↓ を有効に
-- SPOOL list_ORA_errors_\&&VERSIONS\&&LANGUAGES..log
DECLARE
    L_SQLERRM         VARCHAR2(2048) ;
    CURSOR CUR_ER
    IS
        -- NUMBER FROM ~ TO
        SELECT A.NUMBER_FROM - ROWNUM + 1 AS NUMBERS  -- DESCENDING
        FROM(
            SELECT -1     AS NUMBER_FROM  -- 初期値
                 , -65536 AS NUMBER_TO    -- 終了値
            FROM DUAL
            ) A
        CONNECT BY LEVEL <= A.NUMBER_FROM - A.NUMBER_TO + 1 ;
BEGIN
    FOR REC_ER IN CUR_ER LOOP
        L_SQLERRM := SQLERRM(REC_ER.NUMBERS) ;
        IF L_SQLERRM NOT LIKE '%not found;  product=RDBMS; facility=ORA%' AND
           RTRIM(SUBSTR(L_SQLERRM, 11)) IS NOT NULL THEN
            DBMS_OUTPUT.PUT_LINE(L_SQLERRM) ;
        END IF ;
    END LOOP ;
END ;
/
SPOOL OFF
SET LINESIZE 80

-- ALTER SESSION SET NLS_LANGUAGE = AMERICAN ; で実行した時

anser
ORA-00001: unique constraint (.) violated
ORA-00017: session requested to set trace event
ORA-00018: maximum number of sessions exceeded
ORA-00019: maximum number of session licenses exceeded
ORA-00020: maximum number of processes () exceeded
ORA-00021: session attached to some other process; cannot switch session
ORA-00022: invalid session ID; access denied
ORA-00023: session references process private memory; cannot detach session
ORA-00024: logins from more than one process not allowed in single-process mode
ORA-00025: failed to allocate
-- 以下略

-- ALTER SESSION SET NLS_LANGUAGE = JAPANESE ; で実行した時

anser
ORA-00001: 一意制約(.)に反しています
ORA-00017: セッションがトレース・イベントを設定するようリクエストしました。
ORA-00018: 最大セッション数を超えました
ORA-00019: 最大セッション・ライセンス数を超えました
ORA-00020: 最大プロセス数()を超えました
ORA-00021: 他のプロセスに連結されています。セッションは切替えできません
ORA-00022: 無効なセッションIDです。アクセスは拒否されました
ORA-00023: セッションがプロセス・プライベート・メモリーを参照します。セッションを連結解除できません
ORA-00024: シングル・プロセス・モードで複数ログインは使用できません。
ORA-00025: の割当てに失敗しました
-- 以下略

参考
Oracle SQL 連番や連続した日付を取得

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1