2026/6/1 10:08:48
网站建设
项目流程
wordpress网站被自动跳转,网站怎样做优惠卷,安装百度一下,wordpress主题添加评论文章目录 环境症状问题原因解决方案 环境
系统平台#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本#xff1a;4.7.7,4.7.6,4.7.5,4.3.2,4.1.1
症状
从Oracle中导出的表中包含许多空字符#xff0c;但数据类型是numeric或timestamp#xff0c;查询外部表和插入…文章目录环境症状问题原因解决方案环境系统平台Linux x86-64 Red Hat Enterprise Linux 7版本4.7.7,4.7.6,4.7.5,4.3.2,4.1.1症状从Oracle中导出的表中包含许多空字符但数据类型是numeric或timestamp查询外部表和插入本地表会报错信息如下cqsm# select * from fwbb_time ; --fwbb_time是外部表ERROR: invalid input syntax for type numeric: “”CONTEXT: COPY fwbb_time, line 4, column age: “”STATEMENT: select * from fwbb_time ;ERROR: invalid input syntax for type numeric: “”CONTEXT: COPY fwbb_time, line 4, column age: “”问题原因在HGDB中空字符串与NULL值并不相等所以会造成numeric的错误语义解决方案解决的方法有很多如果只是一张单表且数据量不大可以使用case when语句来处理此种方法仍可以保证空值不被转换适用于特殊场景方法如下1、创建外部表将numeric列先用varchar类型代替createforeigntablef2wbb_time(idint,nametext,fgvarchar(8),agevarchar,time_otext)server pg_file_server options(filename/home/postgres/wbb_time.csv,formatcsv,headertrue,delimiter,);2、从外部表插入到本地表selectid,name,casewhenagethenNULLelseageend::realasage,time_ointob2wbb_timefromf2wbb_time;3、修改本地表列数据类型altertableb2wbb_timealtercolumnagetypenumeric;altertableb2wbb_timealterCOLUMNtime_otypetimestampUSINGtime_o::timestampwithouttimezone;4、查询数据cqsm# select * from b2wbb_time ;id|name|age|time_o------------------------------------------1|highgo|1|2019-09-2101:32:001|highgo|1|2019-09-2101:32:002|highgo||2019-09-2101:32:00(3rows)cqsm# \d b2wbb_timeTablepublic.b2wbb_timeColumn|Type|Modifiers-------------------------------------------------id|integer|name|text|age|numeric|time_o|timestampwithouttimezone|