1

次のような単純なクエリの実行に問題があります

select * from table_name where variabe_name like '在职'

問題は漢字です。それらの文字はテーブルにあります(テーブルからselect *を実行した後でコピーしたので、漢字の表示は問題なく機能します)が、機能していないようです。クエリを実行すると、0行が返されます。

私も試しました

select * from table_name where variabe_name like '%在职%'

select * from table_name where variabe_name = '在职'

しかし、それも機能しません。

問題が何であるかについての手がかりはありますか?

たくさんThnaks

4

2 に答える 2

1
 SQL> create table mytbl (data_col varchar2(200));
 Table created
 SQL> insert into mytbl values('在职'); 
 1 row inserted.
 SQL> commit;
 Commit complete.
 SQL> select * from mytbl where data_col like '%在职%';
 DATA_COL                                                                                                                                                                                               
 -----------
 在职 

 SQL> SELECT * FROM nls_database_parameters where parameter='NLS_CHARACTERSET';
 PARAMETER                      VALUE                                  
 ------------------------------ ----------------------------------------
 NLS_CHARACTERSET               AL32UTF8   

に設定NLS_CHARACTERSETする必要がありますAL32UTF8。だから試してみてください

 SQL> ALTER SESSION SET NLS_CHARACTERSET = 'AL32UTF8';

また、パラメータNLS_NCHAR_CHARACTERSETがに設定されていることを確認してくださいUTF8

 SQL> ALTER SESSION SET NLS_NCHAR_CHARACTERSET = 'UTF8';
于 2012-08-01T21:42:26.750 に答える
1

==>解決策が見つかりました:漢字の前に「N」を付けて、Unicodeとして解釈されるようにします。Like:N'罐'のようなフィールド

于 2019-04-05T09:05:01.080 に答える