Update  sys.props$ set value$=' ZHS16GBK ' Where 
   怎么多两个空格?
你在服务器端,用SVRMGRL命令
SVRMGRL>connect internal/oracle
SVRMGRL>startup mount
SVRMGRL>Update props$ set value$='ZHS16GBK' Where name='NLS_CHARACTERSET';
重新启动数据库。试下
不行再把报错,写出来,我们都在线。

解决方案 »

  1.   

    主要原因在于你更改数据库字符界的时候没有先关闭,备份,启动
    按下列步骤:
    To change the database character set, perform the following steps. Not all of them are absolutely necessary, but they are highly recommended: SQL> SHUTDOWN IMMEDIATE;   -- or NORMAL
        <do a full backup>SQL> STARTUP MOUNT;
    SQL> ALTER SYSTEM ENABLE RESTRICED SESSION;
    SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER DATABASE CHARACTER SET <new_character_set_name>;
    SQL> SHUTDOWN IMMEDIATE;   -- or NORMAL
    SQL> STARTUP;
      

  2.   

    提示如下:
    SQL> conn user/password@center as sysdba
    Connected to an idle instance.
    SQL> startup mount
    ORACLE instance started.Total System Global Area  135338868 bytes
    Fixed Size                   453492 bytes
    Variable Size             109051904 bytes
    Database Buffers           25165824 bytes
    Redo Buffers                 667648 bytes
    Database mounted.
    SQL> Update props$ set value$='ZHS16GBK' Where name='NLS_CHARACTERSET';
    Update props$ set value$='ZHS16GBK' Where name='NLS_CHARACTERSET'
                                                   *
    ERROR at line 1:
    ORA-01109: database not open
    SQL>
    没有打开数据库可以利用DDL语句????
      

  3.   

    不行,你用
        kerisyml(魂之利刃) 兄,说的方法试下,不行再用其他办法。
      

  4.   

    不行
      你试下kerisyml(魂之利刃) 兄的方法。
      不行再用别的办法。
      

  5.   

    他的方法是BACKUP DATABASE !
      

  6.   

    试下别的方法吧,
       冷备份你的数据库。因为下面的操作会对你的数据库照成
    不可恢复的操作。
       你在服务器端,用SVRMGRL命令
    SVRMGRL> connect internal;
    SVRMGRL> SHUTDOWN IMMEDIATE;   -- or NORMAL
    SVRMGRL> STARTUP MOUNT;
    SVRMGRL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'修改字符级前的时间'
    SVRMGRL> ALTER DATABASE OPEN resetlogs;
    SQL> STARTUP;