sqlldr 采集中文数据乱码问题

测试机上装入数据 发现中文字段全部变成???????,初步判断为字符集问题

   更改
     UPDATE sys.props$
     SET VALUE$='WE8ISO8859P1'
     where name like 'NLS%'
     and value$='ZHS16GBK';
commit;
后发现sqlldr采集数据时,报错
SQL*Loader-704: Internal error: ulmtsyn: OCIStmtExecute(tabhp) [6552]
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: character set name is not recognized
 
查资料后发现原来更改字符集还需要在设置字符集时把数据库设置成RESTRICTED模式等诸多操作,进行以下操作后,sqlldr采集正常
>STARTUP MOUNT;
 ORACLE instance started. 
 Total System Global Area 76619308 bytes
 Fixed Size 454188 bytes 
 Variable Size 58720256 bytes
 Database Buffers 16777216 bytes 
 Redo Buffers 667648 bytes 
Database mounted. 
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
 Session altered. 
 SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
 System altered. 
 SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
 System altered.
 SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; 
 System altered.
 SQL> ALTER DATABASE OPEN;
 Database altered. 
 SQL> set linesize 120 
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ORA-12712: new character set must be a superset of old character set
RROR at line 1:

>ALTER DATABASE character set INTERNAL_USE zhs16gbk;

>ALTER SESSION SET SQL_TRACE=FALSE;

转载于:https://www.cnblogs.com/bigbean/p/5340532.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值