sql >> データベース >  >> RDS >> Oracle

OracleにORAコードエラーの詳細を問い合わせる

    SQLからはアクセスできませんが、PL / SQL内では、SQLERRMを使用できます。 機能。

    SQL> ed
    Wrote file afiedt.buf
    
      1  begin
      2    dbms_output.put_line( sqlerrm(0) );
      3    dbms_output.put_line( sqlerrm(-1041) );
      4* end;
    SQL> /
    ORA-0000: normal, successful completion
    ORA-01041: internal error. hostdef extension doesn't exist
    
    PL/SQL procedure successfully completed.
    

    もちろん、ora_code_descを作成することもできます。 文字列を受け取り、最初の3文字を削除し、結果の数値をSQLERRMに渡した関数 、結果を返しました

    SQL> ed
    Wrote file afiedt.buf
    
      1  create or replace function ora_code_desc( p_code in varchar2 )
      2    return varchar2
      3  is
      4    l_str varchar2(1000);
      5  begin
      6    l_str := sqlerrm( substr(p_code, 4 ) );
      7    return l_str;
      8* end;
    SQL> /
    
    Function created.
    
    SQL> select ora_code_desc( 'ORA-00000' ) from dual;
    
    ORA_CODE_DESC('ORA-00000')
    --------------------------------------------------------------------------------
    ORA-0000: normal, successful completion
    

    Oracleは、Unixプラットフォームにもユーティリティを出荷しています oerr それはより詳細を提供します-特にあなたが探している原因と行動。そのデータも本当に必要な場合は、オペレーティングシステムシェルを呼び出してoerrを実行するJavaストアドプロシージャを作成できます。 コマンドを実行し、結果を返しました。これにより、より多くのデータが得られますが、明らかに、はるかに複雑になります。



    1. 新しいAzureSQLデータベースの標準階層サイズ

    2. アプリケーションはデータベースに接続します

    3. mysqli_connectとmysql_select_dbを使用します

    4. count関数を使用して、ifステートメントに何が表示されるかを判別します