Oracle裡漢字長度問題!

來源:互聯網
上載者:User
oracle|漢字|問題 以前在做一個系統時,遇到了一個問題!今天無意之中找到了這個問題的解決方案,貼出來!!!

問題描述:
                varchar2(4000) abc;
                intert into table_name(abc) values('這裡有1500個漢字……');
                報錯:插入字元過長!經過測試,發現一個漢字佔3個位元組,所以報錯!!!

問題所在:
                使用的字元集是UTF8,就有可能出現這個錯誤!
                使用命令查看:
                SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';

                PARAMETER
                --------------------------------------------------------------------------------
                VALUE
                --------------------------------------------------------------------------------
                NLS_CHARACTERSET
                AL32UTF8

解決方案:
                建議使用ZHS16GBK字元集!
                操作:
                        SQL> SHUTDOWN IMMEDIATE; 
                        SQL> STARTUP MOUNT; 
                        SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 
                        SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
                        SQL> ALTER DATABASE OPEN; 
                        SQL> ALTER DATABASE CHARACTER SET AL32UTF8/ZHS16GBK;
                        SQL> SHUTDOWN IMMEDIATE;
                        SQL> STARTUP;
                
問題解決!!!


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.