news 2026/6/10 19:12:01

外部表numeric列包含空值如何插入到本地表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
外部表numeric列包含空值如何插入到本地表

文章目录

  • 环境
  • 症状
  • 问题原因
  • 解决方案

环境

系统平台: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',format'csv',header'true',delimiter',');

2、从外部表插入到本地表

selectid,name,casewhenage=''thenNULLelseageend::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_timeTable"public.b2wbb_time"Column|Type|Modifiers---------+-----------------------------+-----------id|integer|name|text|age|numeric|time_o|timestampwithouttimezone|
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:42:09

【Open-AutoGLM部署全攻略】:手把手教你从零搭建AI手机核心引擎

第一章:Open-AutoGLM与AI手机融合新范式随着端侧人工智能能力的持续进化,Open-AutoGLM 作为新一代轻量化大语言模型框架,正推动智能手机从“被动响应”向“主动理解”跃迁。该框架通过动态调度本地推理引擎与云端协同计算资源,实现…

作者头像 李华
网站建设 2026/6/10 11:35:49

【最经典的79个】软件测试面试题(内含答案)

001.软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne) 测试用例 用例编号 测试项目 测试标题 重要级别 预置条件 输入数据 执行步骤 预期结果 0002.问&…

作者头像 李华
网站建设 2026/6/10 2:03:42

Open-AutoGLM为何一夜爆红?:深度解读GitHub社区热议的开源现象

第一章:Open-AutoGLM为何一夜爆红?在人工智能模型快速迭代的浪潮中,Open-AutoGLM的突然走红并非偶然。这款由开源社区驱动的轻量级大语言模型,凭借其高效的推理能力与极低的部署门槛,在发布后短短24小时内便登上GitHub…

作者头像 李华
网站建设 2026/6/9 20:56:04

测试人员在SDL中的角色进化

在传统开发模式中,安全测试往往被视为开发末期的“门禁”环节,由专人或专项团队执行。这种滞后性导致安全问题发现晚、修复成本高、项目延期风险大。安全开发生命周期(SDL)的核心思想是 ‌“安全左移”‌ ,即将安全考量…

作者头像 李华
网站建设 2026/6/10 13:19:37

揭秘Open-AutoGLM文档引擎:5大关键技术让你快速构建智能知识库

第一章:揭秘Open-AutoGLM文档引擎:核心架构与设计理念Open-AutoGLM 是一个面向自动化文档生成的高性能引擎,专为处理复杂结构化数据与自然语言融合场景而设计。其核心理念是“语义驱动、模块解耦、可扩展优先”,通过将文档生成过程…

作者头像 李华
网站建设 2026/6/10 13:23:36

错过将后悔!Open-AutoGLM开源上线GitHub,这5大功能你必须掌握

第一章:错过将后悔!Open-AutoGLM开源上线GitHub,这5大功能你必须掌握Open-AutoGLM 作为近期在 GitHub 上迅速走红的开源项目,凭借其对 GLM 系列模型的自动化调优与部署能力,正在成为 NLP 工程师的新宠。该项目不仅支持…

作者头像 李华