我在执行简单查询时遇到问题,例如以下
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 = '在职'
但这也不起作用。
可能出现问题的任何线索?
深受欢迎
答案 0 :(得分: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';
答案 1 :(得分:1)
==>找到解决方案:在中文字符前加上“ N”,以便将它们解释为Unicode。像:哪里像N'罐'