微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Teradata - 转换过程中遇到非法格式的字符串

如何解决Teradata - 转换过程中遇到非法格式的字符串

我正在通过 Pandas 数据帧中的 Twitter API 获取推文并将数据写入 teradata 数据库。但是,与其他推文不同,一个单元格具有特定推文,其中包含粗体数据。当我尝试将其插入数据库时​​,它弹出以下错误

OperationalError: [Version 17.0.0.4] [Session 3046127] [teradata sql Driver] [Error 528] A failure occurred while executing rows 1 through 292 of a batch request.
 at gosqldriver/teradatasql.(*teradataConnection).makeDriverErrorCode teradataConnection.go:1120
 at gosqldriver/teradatasql.newteradaTarows teradaTarows.go:396
 at gosqldriver/teradatasql.(*teradataStatement).QueryContext teradataStatement.go:122
 at gosqldriver/teradatasql.(*teradataConnection).QueryContext teradataConnection.go:2083
 at database/sql.ctxDriverQuery ctxutil.go:48
 at database/sql.(*DB).queryDC.func1 sql.go:1579
 at database/sql.withLock sql.go:3204
 at database/sql.(*DB).queryDC sql.go:1574
 at database/sql.(*Conn).QueryContext sql.go:1823
 at main.goCreateRows goside.go:654
 at main._cgoexpwrap_cfa80c8a3acb_goCreateRows _cgo_gotypes.go:363
 at runtime.cgocallbackg1 cgocall.go:332
 at runtime.cgocallbackg cgocall.go:207
 at runtime.cgocallback_gofunc asm_amd64.s:793
 at runtime.goexit asm_amd64.s:1373
Caused by [Version 17.0.0.4] [Session 3046127] [teradata Database] [Error 6705] An illegally formed character string was encountered during translation.
 at gosqldriver/teradatasql.(*teradataConnection).formatDatabaseError teradataConnection.go:1138
 at gosqldriver/teradatasql.(*teradataConnection).makeChainedDatabaseError teradataConnection.go:1154

数据库中的推文数据类型是“varchar(1000) CHaraCTER SET UNICODE NOT CASESPECIFIC”

这是示例数据:

enter image description here

包含粗体文本的推文导致插入问题。我该如何缓解这种情况?

解决方法

要存储或检索任意 Unicode 代码点,请使用 Unicode Pass-Through 功能来加载和查询会话。

SET SESSION CHARACTER SET UNICODE PASS THROUGH ON;

对于给出的特定示例,您可能会发现“规范化”Unicode 文本很有用,例如如果您需要相应的 ASCII 字母字符,请在加载前使用 Python unicodedata.normalize 或在加载后使用 Teradata TRANSLATE(...) - 但这不适用于其他 Unicode 字符,例如也可能出现在输入中的表情符号。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。