求助:spool中文乱码问题
spool大家有没有用过的,从数据库取出的数据中文成乱码了 大家有没有解决方法的啊?

解决方案 »

  1.   

    OS的字符集怎么查看和修改?我用shell脚本来实现SPOOL输出的
      

  2.   

    spooL输出的结果是乱码,我又看了一下,用pl/sql develop查询出来的结果是中文是正常的,可用unix登陆SQLPLUS查询出来的结果就是中文乱码
      

  3.   

    1.
    select value from nls_database_parameters
    where parameter='NLS_CHARACTERSET';2.在你操作系统的ORACLE用户,设置环境变量,export NLS_LANG='SIMPLIFIED CHINESE_CHINA.xxx'
    xxx即查询结果。
      

  4.   

    export NLS_LANG='SIMPLIFIED CHINESE_CHINA.xxx' oracleUTF8格式的 unix声明后会把shell中的查询语句的半角逗号变全角 致使查询出错
      

  5.   

    你具体怎么设的NLS_LANG的值?
    是'SIMPLIFIED CHINESE_CHINA.UTF8'?
    叫你先执行第一步的查询。这个查询结果怎么可能就是“UTF8”?
      

  6.   

    export NLS_LANG='SIMPLIFIED CHINESE_CHINA.UTF8'
    sqlplus $OraUser/$OraPwd@$OraSid <<EOF   >/dev/null 2>&1   
    set line 1000                                                                                              
    spool ${tmpfile}                                                                                           
        select 'pOCS',
               d.host_desc,
               a.check_time,
               b.monitor_type,
               c.monitor_item,
               decode(a.status,'0','失败','1','成功',null)
          from monitor_status a
          left join monitor_type b on a.monitor_type = b.monitor_type_id
          left join monitor_item c on a.monitor_item = c.monitor_item_id
          left join host_desc d on a.host_name = d.hostname;
    spool off 按照上面的意思一步一步执行可以出结果,可是放在shell里面缺总是报错
    SQL>     select 'pOCS',
      2             d.host_desc,
      3             a.check_time,
      4             b.monitor_type,
      5             c.monitor_item,
      6             decode(a.status,'0','失败','1','成功',null)
      7        from monitor_status a
      8        left join monitor_type b on a.monitor_type = b.monitor_type_id
      9        left join monitor_item c on a.monitor_item = c.monitor_item_id
     10        left join host_desc d on a.host_name = d.hostname;
    ERROR:
    ORA-01756: quoted string not properly terminated 
    SQL> spool off我是实在搞不懂了