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

セッションでOracleで使用されている通貨記号を確認する

    Oracle Databaseでは、次のNLSパラメータを使用して、現在のセッションで通貨がどのように表示されるかを決定できます。

    • NLS_CURRENCY Lの現地通貨記号として使用する文字列を指定します 数値フォーマット要素。
    • NLS_ISO_CURRENCY Cに何を使用するかを決定します フォーマット要素。
    • NLS_DUAL_CURRENCY Uに何を使用するかを指定します フォーマット要素。

    これらのデフォルト値は、NLS_TERRITORYによって決定されます。 パラメータ。

    LC 、およびU 数値形式の要素は、TO_CHAR()などの関数で使用できます。 数値を通貨としてフォーマットします。

    通貨記号を返す方法

    V$NLS_PARAMETERSにクエリを実行すると、現在のセッションで使用されている通貨記号を確認できます。 ビュー。

    例:

    SELECT 
        PARAMETER,
        VALUE
    FROM V$NLS_PARAMETERS
    WHERE PARAMETER IN (
        'NLS_TERRITORY',
        'NLS_CURRENCY',
        'NLS_ISO_CURRENCY',
        'NLS_DUAL_CURRENCY'    
        );

    結果:

               PARAMETER      VALUE 
    ____________________ __________ 
    NLS_TERRITORY        GERMANY    
    NLS_CURRENCY         €          
    NLS_ISO_CURRENCY     GERMANY    
    NLS_DUAL_CURRENCY    €         

    これらのパラメータのデフォルト値は、NLS_TERRITORYによって導出されます。 パラメータ。そのパラメータの現在の設定は次のとおりです。

    SELECT VALUE
    FROM V$NLS_PARAMETERS
    WHERE PARAMETER = 'NLS_TERRITORY';

    結果:

    GERMANY

    そのパラメーターを変更することにより、他のパラメーターの値がそのテリトリーのデフォルト値に更新されます(新しいテリトリーが特定のパラメーターの古いテリトリーと同じ値を使用する場合を除く)。

    ただし、各パラメータを直接変更することもできます。これにより、その地域のデフォルトの通貨記号とは異なる通貨記号を使用できます。

    動作中の要素のフォーマット

    上記のNLSパラメータを使用できる例を次に示します。

    ALTER SESSION SET NLS_TERRITORY = 'DENMARK';
    
    SELECT 
        TO_CHAR(45, 'L99') AS "L",
        TO_CHAR(45, 'C99') AS "C",
        TO_CHAR(45, 'U99') AS "U"
    FROM DUAL;

    結果:

                   L             C              U 
    ________________ _____________ ______________ 
             kr45         DKK45            €45   

    1. IRIソフトウェアをOracleに接続する

    2. 弱く型付けされたSYS_REFCURSORである変数の%ROWTYPEを宣言する方法は?

    3. MariaDBでのLOG()のしくみ

    4. java.sql.TimestampでJoda-Timeを使用する方法