sql >> Databáze >  >> RDS >> Oracle

Chyba nesouladu znakové sady v Oracle

jak jste potvrdili, některé věci jsou NVARchar'd ..vyslání nvarcharu na char např.

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

selže, protože "A" je NVARCHAR. tak to_char it:

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

         1 'HI'
---------- ----
         1 hi
         2 a

nebo přeneste řetězcový doslovný 'hi' do Nvarchar

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

             1 N'
    ---------- --
             1 hi
             2 a


  1. Mysql odstranit pomocí poddotazu

  2. Jak mohu odstranit zablokování transakce?

  3. Převeďte DateTime v C# na formát yyyy-MM-dd a uložte jej do MySql DateTime Field

  4. Chybu Nifi PutSQL Timestamp/Datetime error nelze převést