我正在读取配置单元表并将其写入Teradata表(列到列,无任何转换)
cf ssh
它运行了一段时间,并失败了 Teradata数据库] [TeraJDBC 16.20.00.06] [错误6706] [SQLState HY000]字符串包含不可翻译的字符
如果我只插入日期/数字列,它就可以正常工作。
我尝试将Teradata表列设置为UNICODE,但没有成功。
问题是,如何识别错误的记录/列?有成千上万的行和几百列,因此一次运行一个不是可行的解决方案。我必须要么a)标识记录/列,要么b)使用任何(垃圾)字符强制翻译
答案 0 :(得分:0)
您至少可以逐列尝试。但是根据我过去的经验,此错误是由熊猫NaN-Null-无引起的,占80%。另一个“通常的可疑对象”是您将这些列与列混合在一起,因此(无意间)尝试将严格值放入数字中。
要检查哪一列是错误的列,值得通过“二进制搜索” -ish对其进行测试。
此外,Teradata Studio提供了一个不错的GUI,用于将数据从Hadoop迁移到Teradata,称为SmartLoader。在这里,您可以看到列映射,并且可以定义一些Null处理(http://downloads.teradata.com/tools/articles/smart-loader-for-hadoop)。
霍斯特