工作需要,安裝裝了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 新字符集必須為舊字...