产生原因分析:
对于datawindow中char族类型不支持大于255个字符的总结与处理方法。
在早期的Sybase数据库(ase 11.9之前)中不支持大约255个字符的varchar类型,这可能是造成它的配套开发工具pb中对char族类型不支持大于255个字符的原因。
在pb6.5中检索大于255个字符的char族类型列时,sql server和ASA,Oracle会被截断,这个应该是pb6.5的特定数据库连接驱动中进行了处理。因为如果把连接方式换成ODBC连接的话,测试会发现大于255的字符数据可以被成功提取
需求背景:
但是在实际的应用过程中,尤其对一些描述性或备注性信息,255个字符显然是有些太小。那么怎么突破这个限制哪?对不同的数据库我们又怎么能进行一致的处理哪?
解决方法:
1.对于sybase11.9之前的数据库,不支持大约255个字符的列定义,所以需要设置列为text类型(sql server,asa 也可以这样设置)
Alter table [table_name] add [column_name] text null
对于Oracle可以设置列为clob
Alter table [table_name] add [column_name] clob null
2.然后把数据窗口export出来,把列长度改为小于32000的相应长度,text类型的列建议改为32000。还要注意import进数据窗口后,改一下对应的limit的值(最好不要设为0,也不能大于32765),否则可能显示不全,或无法录入数据
测试数据:
测试环境:
Oracle 9i
Sybase 11.9
Asa 9.0
Sql server 2000
备注:
1. 在ASA中的text类型是long varchar的别名
2. 要特别注意在oracle下,数据窗口中的列长度不能大于32765,肯定是数据库连接驱动中进行了限制
3. 对于oracle,mss,asa支持场varchar类型的数据库,也不要建为varchar(2000)这样的列。必须建为text,clob类型的列
4. 一个表中,text/clob类型列不要太多,最好只要一个