Oracle 10g,字符集AL32UTF8,一个表其中5个字段(SQL0...SQL4),都是VARCHAR2类型,长度3000,Delphi开发的程序可能需要将一段很长的文本保存到其中,如果SQL0保存不下就按可保存的长度截断,剩下的放到SQL1中,以此类推...,现在发现几个问题:
1. 如果文本中包含中文,无法准确的得到文本的长度,貌似Oracle中中文和英文所占长度不同,中文占3个字符
2. 假设保守的全按中文处理,也就是说一个字段最多存放1000个字符,那么在程序中按1000分割时很可能将其中一个中文拆成两半
------解决方案--------------------
利用oracle substr函数拆分,不会把汉字拆成两半的
substr 是按字符拆分的,而不是字节