Changes between Version 23 and Version 24 of v6/pgsummary


Ignore:
Timestamp:
06/25/2012 02:46:33 PM (14 years ago)
Author:
chenchongqi
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • v6/pgsummary

    v23 v24  
    205205}}} 
    206206 
    207 == 导数据 == 
    208 * 字符长度超长 
    209 {{{ 
    210 [postgres@test740-10 ora2cyp]$ cat export.log |grep ERROR 
    211 psql:ENT_COMPANY_WEB.sql:142: ERROR: value too long for type character varying(720) 
    212 psql:ENT_NEWS_WEB.sql:19: ERROR: value too long for type character varying(500) 
    213 数据长度不对,有可能跟转为utf8 字符集,长度增加有关系,奇怪的是其他表不需要。 
    214  
    215 psql:ENT_QQ_CONTACT.sql:21: ERROR: bigint out of range 
    216 其中的qq 号明显有问题,修改字段类型,重新导入,建议开发对输入做限制。 
    217  
    218 psql:ENT_QUESTION.sql:1125: ERROR: value too long for type character varying(2000) 
    219 ENT_REQUEST_ERROR.sql Tue Mar 13 21:19:13 CST 2012 
    220 psql:ENT_REQUEST_ERROR.sql:43: ERROR: value too long for type character varying(4000) 
    221 psql:ENT_SYSLOG.sql:72: ERROR: value too long for type character varying(500) 
    222  
    223 数据长度不对,有可能跟转为utf8 字符集,长度增加有关系,奇怪的是其他表不需要。 
    224  
    225 '''  后记 ''' 
    226  
    227 问题已经解决,主要原因出在我们在oracle 转pg过程中,对元字符进行了转义,导致导致原本只有站占一个字符的元字符变成了多个字符导致字段长度改变 
    228 目前这个问题已经解决,已经通过了测试。 
    229 }}} 
    230  
    231 * 字符编码问题,部分gbk了里的乱码,没有对应utf8编码,无法转入,需要人工干预。 http://bbs.pconline.cn/topic-1954.html   
    232 {{{ 
    233 '''后记''' 
    234 问题已经解决,采用xdb脚本来转数据。不在使用orapg 来转数据,只利用他来生成建库脚本。  
    235  
    236 }}} 
    237  
    238 * oracle数据中的回车换行导到pg中的时候变成了\r\n 
    239 {{{ 
    240 '''后记''' 
    241 问题解决, 因为xdb脚本中针对元字符\r\n 的转义,导致\r\n 进入pg后变成两个字符,java页面显示为\r\n 而不在是控制字符。 
    242 新版本的xdb 脚本已经解决这个问题,已经通过了测试。  
    243 }}} 
    244  
    245 *  ent_question 表 question_contact 字段存贮有二进制数据 
    246 {{{ 
    247 question_contact 字段 存有二进制数据00  , 在文本下表现为可打印字段^@ (linux  ctl+v+2)  
    248 @ 在pg里是运算符导致问题?  
    249 pg报错: ERROR:  VALUES lists must all be the same length at character 16690 
    250  
    251 初步查明,这些数据都为历史数据,新数据已经没有这个字段的输入了。 
    252   
    253 详细描述:  
    254 http://bbs.pconline.cn/topic-2164.html 
    255 }}} 
    256  
    257 * oracle中的number类型数据导入postgresql 
    258 {{{ 
    259 用xdb 从oracle导出来的是文本,转入pg的时候,会发生自动转换 
    260 number类型导入到postgresql中会转为bigint类型,number(10,2)这样的会转为double类型,造成数据不一致 
    261  
    262 解决方案:批量生成表结构,然后手工修正,修正的规则是 
    263 number类型的根据业务逻辑判断转换后的应该是bigint还是numeric(10,2) 
    264 number(10,2)类型的转换为numeric(10,2) 
    265  
    266 }}} 
    267  
    268207* pg jdbc 驱动 cursor 的使用问题 
    269208{{{ 
     
    276215}}} 
    277216 
     217 
     218== 导数据 == 
     219* 字符长度超长 
     220{{{ 
     221[postgres@test740-10 ora2cyp]$ cat export.log |grep ERROR 
     222psql:ENT_COMPANY_WEB.sql:142: ERROR: value too long for type character varying(720) 
     223psql:ENT_NEWS_WEB.sql:19: ERROR: value too long for type character varying(500) 
     224数据长度不对,有可能跟转为utf8 字符集,长度增加有关系,奇怪的是其他表不需要。 
     225 
     226psql:ENT_QQ_CONTACT.sql:21: ERROR: bigint out of range 
     227其中的qq 号明显有问题,修改字段类型,重新导入,建议开发对输入做限制。 
     228 
     229psql:ENT_QUESTION.sql:1125: ERROR: value too long for type character varying(2000) 
     230ENT_REQUEST_ERROR.sql Tue Mar 13 21:19:13 CST 2012 
     231psql:ENT_REQUEST_ERROR.sql:43: ERROR: value too long for type character varying(4000) 
     232psql:ENT_SYSLOG.sql:72: ERROR: value too long for type character varying(500) 
     233 
     234数据长度不对,有可能跟转为utf8 字符集,长度增加有关系,奇怪的是其他表不需要。 
     235 
     236'''  后记 ''' 
     237 
     238问题已经解决,主要原因出在我们在oracle 转pg过程中,对元字符进行了转义,导致导致原本只有站占一个字符的元字符变成了多个字符导致字段长度改变 
     239目前这个问题已经解决,已经通过了测试。 
     240}}} 
     241 
     242* 字符编码问题,部分gbk了里的乱码,没有对应utf8编码,无法转入,需要人工干预。 http://bbs.pconline.cn/topic-1954.html   
     243{{{ 
     244'''后记''' 
     245问题已经解决,采用xdb脚本来转数据。不在使用orapg 来转数据,只利用他来生成建库脚本。  
     246 
     247}}} 
     248 
     249* oracle数据中的回车换行导到pg中的时候变成了\r\n 
     250{{{ 
     251'''后记''' 
     252问题解决, 因为xdb脚本中针对元字符\r\n 的转义,导致\r\n 进入pg后变成两个字符,java页面显示为\r\n 而不在是控制字符。 
     253新版本的xdb 脚本已经解决这个问题,已经通过了测试。  
     254}}} 
     255 
     256*  ent_question 表 question_contact 字段存贮有二进制数据 
     257{{{ 
     258question_contact 字段 存有二进制数据00  , 在文本下表现为可打印字段^@ (linux  ctl+v+2)  
     259@ 在pg里是运算符导致问题?  
     260pg报错: ERROR:  VALUES lists must all be the same length at character 16690 
     261 
     262初步查明,这些数据都为历史数据,新数据已经没有这个字段的输入了。 
     263  
     264详细描述:  
     265http://bbs.pconline.cn/topic-2164.html 
     266}}} 
     267 
     268* oracle中的number类型数据导入postgresql 
     269{{{ 
     270用xdb 从oracle导出来的是文本,转入pg的时候,会发生自动转换 
     271number类型导入到postgresql中会转为bigint类型,number(10,2)这样的会转为double类型,造成数据不一致 
     272 
     273解决方案:批量生成表结构,然后手工修正,修正的规则是 
     274number类型的根据业务逻辑判断转换后的应该是bigint还是numeric(10,2) 
     275number(10,2)类型的转换为numeric(10,2) 
     276 
     277}}} 
     278 
     279