oracle 11g更改字符集

2021-06-19 06:47:28 字數 906 閱讀 8258

工作需要,安裝裝了oracle 11g,在匯入其他機器上的備份資料的時間,發生乙個錯誤:

imp-00019: 由於 oracle 錯誤 12899 而拒絕行

imp-00003: 遇到 oracle 錯誤 12899

ora-12899: 列 "zheng"."d_dic"."dicexplain" 的值太大 (實際值: 140, 最大值: 100)

這個資料表結構是直接注入的,根本不會這樣子的啊。後來在網上查了才知道原來是字符集的問題:

已經完成 zhs16gbk 字符集和 al16utf16 nchar 字符集中的匯入

匯入伺服器使用 al32utf8 字符集 (可能的字符集轉換)

"原來在我的windows server 2003系統上安裝oracle,預設的字符集跟作業系統一致,是al32utf8。

al32utf8裡,乙個漢字是占用3個字元位,而一般我們用windows xp中預設的是zhs16gbk ,乙個漢字用2個字元位。這樣,直接匯入資料就直接溢位了。

在網上找到乙個修改字符集的方法:

「sql> conn sys/sys as sysdba;

sql> shutdown immediate;

sql> startup mount;

sql> alter session set sql_trace=true;

sql> alter system enable restricted session;

sql> alter system set job_queue_processes=0;

sql> alter system set aq_tm_processes=0;

sql> alter database open;

sql> alter database character set zhs16gbk;

Oracle 11g修改字符集

問題 imp 00019 由於 oracle 錯誤 12899 而拒絕行 imp 00003 遇到 oracle 錯誤 12899 ora 12899 列 jackeyj jk register opname 的值太大 實際值 21,最大值 20 列 1 523 從9i環境下exp出來的資料,imp...

Oracle 11g 字符集修改

1 確認服務端字符集 1 select userenv language from dual 2 修改服務端字符集 首先以 dba 身份登入 oracle。windows 系統下直接在命令列下執行命令 sqlplus as sysdba 或在 sql plus 下執行命令 as sysdba。然後依...

oracle 11g 下修改伺服器字符集

嘗試方法一 在sys sys 下面執行下面語句 失敗 注 sql alter database character set zhs16gbk alter database character set zhs16gbk 結果報下面錯誤 error 位於第 1 行 ora 12712 新字符集必須為舊字...