【问题标题】:How to overcome default constraint in vertica如何克服vertica中的默认约束
【发布时间】:2017-05-26 10:48:47
【问题描述】:

我正在通过 talend 将数据从 Netezza 加载到 vertica。在没有任何中断的情况下,我想将数据从源加载到目标。但是我遇到了错误

原因:com.vertica.support.exceptions.FeatureNotSupportedException:[Vertica]VJDBC 错误:列 COLUMNNAME 设置了 NOT NULL 约束并且没有定义默认值。

NETEZZA 和 VERTICA 表中的列名定义为 NOT NULL。

请任何人都可以提供帮助。提前致谢。

【问题讨论】:

    标签: talend netezza vertica


    【解决方案1】:

    您必须查看您的日志文件。

    独立于 ETL 工具,将有一个 SELECT * 针对源(在您的情况下为 Netezza),或一个 SELECT 与表的所有列,以及一个 INSERT /*+DIRECT */ INTO <table> (col1,col2,..., coln) VALUES (?,?,...,?) 针对您的目标(在您的情况下,垂直)。您必须检查两个语句中是否都提到了表的所有列。

    我怀疑没有提到触发错误的列。

    检查日志文件。

    祝你好运 - 马可

    【讨论】:

    • Marco,但 Netezza 和 vertica 中的列名相同
    • 如果 Talend 未从 Netezza 中选择所有列和/或未将所有列用于 Vertica 中的 INSERT,则 Netezza 和 Vertica 中的相同列名将无济于事。只有查看 Talend 的日志文件才能发现这一点,真的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 2020-12-11
    • 2012-06-18
    • 1970-01-01
    相关资源
    最近更新 更多