oracle抛出的错误现在是乱码(中文文字),如何把这些中文文字变成不是乱码,用的字符集是UTF8的。

解决方案 »

  1.   

    在哪里报错是乱码呀。sqlplus环境里,还是程序里。
      

  2.   

    在P/LSQL里面么?好像说的不太详细啊
      

  3.   

    在BAT中调用SQL文件的时候,生成的LOG文件当中,这里面假如抛出ORACLE的系统异常的时候,中文就会乱码,数据库编码是UTF8的。Set ErrLogFile_TSQL= C:\_TSQL_ERR.LOG
    sqlplus %UserId%/%PassWord%@%DatabaseName% @C:\WCL_ODR_PROC.sql  > %ErrLogFile_TSQL%
      

  4.   


    SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jan 25 13:39:02 2010Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    ???: 
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Session altered.[SQLLDR_ERROR]PROPERTY ERROR.Error converting data type varchar to
    datetime.[Receive_Date]这里面就是LOG文件中的内容, ???:  这些中文就是乱码,不知道如何解决,
      

  5.   

    我现在是这样解决的,不过不是太好,就是在SQL文件中调用存储过程之前,把 打LOG的信息的中文转化成了 英文,加了这样的一句话。
    alter session set nls_language=american;还有其他的解决办法吗
      

  6.   

    吧oracle注册表中的nls_lang的值设为AMERICAN_AMERICA.WE8ISO8859P1