原因:客户端连接的NLS_LANG参数与DB中的NLS_CHARACTERSET不一致
查看服务器的参数:
select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'
or
select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
PARAMETER VALUE
----------------------- ----------------------------------------------
NLS_CHARACTERSET AL32UTF8
客户端连接的设置:
WINNT> set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
LINUX> export NLS_LANG=AMERICAN_AMERICA.AL32UTF8s
我一般写成bat来做:
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
D:/oracle/product/10.2.0/client_1/BIN/exp.exe PESP_USER/PESP_USER@DBUTF8 file="f:/pesp_db_20110627.dmp" log=f:/exp.log owner=PESP_USER