设为首页收藏本站
查看: 65|回复: 0

[PHP] Linux系统Oracle数据库乱码问题的解决方法

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2018-7-3 14:39:00 | 显示全部楼层 |阅读模式
    1.修改远程linux机器的配置 在vim /etc/sysconfig/i18n文件里的配置如下:LANG=zh_CN.GBK SUPPORTED=zh_CN.UTF-8:zh_CN:zh:zh

      1.修改远程linux机器的配置
    在vim /etc/sysconfig/i18n文件里的配置如下:
    LANG="zh_CN.GBK"
    SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_CN.GBK"
    SYSFOnT="latarcyrheb-sun16"
    2.修改稿Oracle的环境变量:用oracle用户进入系统。在.bash_profile文件最后加上以下内容
    NLS_LANG="SIMPLIFIED Chinese"_CHINA.ZHS16GBK
    export NLS_LANG

    3.重启数据库服务器,启动数据库监听,启动数据库
    4.用sys用户登录数据库,执行以下语句:
    update props$ set value$='ZHS16GBK' where
    重启数据库监听。
    到这儿,,数据库数据已能正常显示,但以前的数据还是乱码,需要重新导入。数据库会出现另一个问题 ora-06552.
    5.以下是ora-06552的解决方法:
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER SYSTEM ENABLE RESTRICTED SESSION;
    ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    ALTER SYSTEM SET AQ_TM_PROCESSES=0;
    ALTER DATABASE OPEN;
    COL VALUE NEW_VALUE CHARSET
    SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
    COL VALUE NEW_VALUE NCHARSET
    SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';--INTERNAL_USE是没有写在文档中的参数,用以强制完成字符集一致化
    ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
    ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
    SHUTDOWN IMMEDIATE;
    STARTUP;
    -- 再次启动数据库一遍
    SHUTDOWN IMMEDIATE;
    STARTUP;
    按照上面的步骤,一步一步来,一步不要少,完成以后就ok了
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表