測試機上裝入數據 發現中文欄位全部變成???????,初步判斷為字元集問題 更改 UPDATE sys.props$ SET VALUE$='WE8ISO8859P1' where name like 'NLS%' and value$='ZHS16GBK'; commit; 後發現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;