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

Oracleでの文字セットの不一致エラー

    いくつかのことがNVARcharされていることを確認したので、nvarcharをcharにキャストします。例

    SQL> create table tab(a nvarchar2(2));
    
    Table created.
    
    SQL> insert into tab values ('a');
    
    1 row created.
    
    SQL> select 1, 'hi' from dual
      2  union all
      3  select 2, a from tab;
    select 1, 'hi' from dual
              *
    ERROR at line 1:
    ORA-12704: character set mismatch
    

    「A」はNVARCHARであるため、失敗します。だからto_charit:

    SQL> select 1, 'hi' from dual
      2  union all
      3  select 2, to_char(a) from tab;
    
             1 'HI'
    ---------- ----
             1 hi
             2 a
    

    または、文字列リテラル「hi」をNvarcharにキャストします

       SQL> select 1, n'hi' from dual
          2  union all
          3  select 2, a from tab;
    
                 1 N'
        ---------- --
                 1 hi
                 2 a
    


    1. SELECTFORUPDATEロックとカーソルおよびバッチDMLとの相互作用

    2. PGAdminがHerokuからのデータベースの量が多すぎることを示しています

    3. テーブルの行が存在するかどうかをテストする効率的な方法

    4. MySQLは、範囲内の欠落している日付を埋める方法を教えてください。