首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何抑制Teradata插入的无效类型?

问如何抑制Teradata插入的无效类型?
EN

Stack Overflow用户
提问于 2015-06-01 13:07:36
回答 1查看 127关注 0票数 0

在将数据从一个表插入到另一个表时,Teradata执行自动类型转换。因此,例如,如果将varchar插入到date字段中,Teradata会将varchar转换为date。如果所有的varchars看起来都像有效的日期字符串,那么这个方法就很好用。

但是,当Teradata遇到看起来不像是有效date的varchar时,它就无法转换,因此会显示一个错误。如何强制执行dirty insert?我希望Teradata在无法强制转换的情况下插入NULL (默默忽略错误)

有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2015-06-01 21:40:08

您可以尝试使用日历表。这在一定程度上取决于数据的结构,但基本上:

代码语言:javascript
复制
insert into <your destination table>
    select
    <t1.columns>,
t2.calendar_date 
    from <your table> t1
    left join sys_calendar.calendar t2
      on t1.<your character date column> = cast (cast(t2.calendar_date as 
        date format 'YYYY-MM-DD') as char(10))

格式化将取决于您的列的实际外观。

您可以插入日历表中的calendar_date列,而不是插入源表中的列。如果源表中的日期无效,则插入一个null。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30565957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档