由于 OperationalError,无法 create_context 使用 teradataml
Unable to create_context using teradataml due to OperationalError
我使用的是 teradataml 包版本 16.20.0.4,我在创建上下文的过程中遇到了一个奇怪的错误,使用的是通常的
import teradataml as tdml
tdml.create_context(username = 'user', password='pass', host='host')
然后我得到
[...]
OperationalError: (teradatasql.OperationalError) [Version 16.20.0.59] [Session 6751033] [Teradata Database] [Error 3706] Syntax error: expected something between ')' and ','.
at gosqldriver/teradatasql.(*teradataConnection).formatDatabaseError TeradataConnection.go:1102
at gosqldriver/teradatasql.(*teradataConnection).makeChainedDatabaseError TeradataConnection.go:1118
at gosqldriver/teradatasql.(*teradataConnection).processErrorParcel TeradataConnection.go:1181
at gosqldriver/teradatasql.(*TeradataRows).processResponseBundle TeradataRows.go:1415
at gosqldriver/teradatasql.(*TeradataRows).executeSQLRequest TeradataRows.go:521
at gosqldriver/teradatasql.newTeradataRows TeradataRows.go:388
at gosqldriver/teradatasql.(*teradataStatement).QueryContext TeradataStatement.go:122
at gosqldriver/teradatasql.(*teradataConnection).QueryContext TeradataConnection.go:2044
at database/sql.ctxDriverQuery ctxutil.go:48
at database/sql.(*DB).queryDC.func1 sql.go:1464
at database/sql.withLock sql.go:3032
at database/sql.(*DB).queryDC sql.go:1459
at database/sql.(*Conn).QueryContext sql.go:1701
at main.goCreateRows goside.go:653
at main._cgoexpwrap_1fc37444973b_goCreateRows _cgo_gotypes.go:357
at runtime.call64 asm_amd64.s:574
at runtime.cgocallbackg1 cgocall.go:316
at runtime.cgocallbackg cgocall.go:194
at runtime.cgocallback_gofunc asm_amd64.s:826
at runtime.goexit asm_amd64.s:2361
[SQL: SELECT tablename
FROM dbc.tablesvx
WHERE DatabaseName (NOT CASESPECIFIC) = CAST(TRANSLATE(? USING UNICODE_TO_LATIN) as VARCHAR(128)) (NOT CASESPECIFIC) AND TableName=? AND TableKind (NOT CASESPECIFIC) IN ('O' (NOT CASESPECIFIC), 'Q' (NOT CASESPECIFIC), 'T' (NOT CASESPECIFIC))]
[parameters: ('pm', 'versionInfo')]
(Background on this error at: http://sqlalche.me/e/e3q8)
就好像库向 Teradata 服务器发送了一个格式错误的查询...这是否合理?我该怎么办?
谢谢
我知道您也将此问题发布到 Teradata 社区论坛,相关团队的人员会在那里回复。
如果您尝试将 teradataml 与旧版本的 Teradata 数据库一起使用,就会出现您遇到的错误。您使用的是什么数据库版本?
请注意,teradataml 需要 Teradata SQL Engine 16.20 或更高版本。
我使用的是 teradataml 包版本 16.20.0.4,我在创建上下文的过程中遇到了一个奇怪的错误,使用的是通常的
import teradataml as tdml
tdml.create_context(username = 'user', password='pass', host='host')
然后我得到
[...]
OperationalError: (teradatasql.OperationalError) [Version 16.20.0.59] [Session 6751033] [Teradata Database] [Error 3706] Syntax error: expected something between ')' and ','.
at gosqldriver/teradatasql.(*teradataConnection).formatDatabaseError TeradataConnection.go:1102
at gosqldriver/teradatasql.(*teradataConnection).makeChainedDatabaseError TeradataConnection.go:1118
at gosqldriver/teradatasql.(*teradataConnection).processErrorParcel TeradataConnection.go:1181
at gosqldriver/teradatasql.(*TeradataRows).processResponseBundle TeradataRows.go:1415
at gosqldriver/teradatasql.(*TeradataRows).executeSQLRequest TeradataRows.go:521
at gosqldriver/teradatasql.newTeradataRows TeradataRows.go:388
at gosqldriver/teradatasql.(*teradataStatement).QueryContext TeradataStatement.go:122
at gosqldriver/teradatasql.(*teradataConnection).QueryContext TeradataConnection.go:2044
at database/sql.ctxDriverQuery ctxutil.go:48
at database/sql.(*DB).queryDC.func1 sql.go:1464
at database/sql.withLock sql.go:3032
at database/sql.(*DB).queryDC sql.go:1459
at database/sql.(*Conn).QueryContext sql.go:1701
at main.goCreateRows goside.go:653
at main._cgoexpwrap_1fc37444973b_goCreateRows _cgo_gotypes.go:357
at runtime.call64 asm_amd64.s:574
at runtime.cgocallbackg1 cgocall.go:316
at runtime.cgocallbackg cgocall.go:194
at runtime.cgocallback_gofunc asm_amd64.s:826
at runtime.goexit asm_amd64.s:2361
[SQL: SELECT tablename
FROM dbc.tablesvx
WHERE DatabaseName (NOT CASESPECIFIC) = CAST(TRANSLATE(? USING UNICODE_TO_LATIN) as VARCHAR(128)) (NOT CASESPECIFIC) AND TableName=? AND TableKind (NOT CASESPECIFIC) IN ('O' (NOT CASESPECIFIC), 'Q' (NOT CASESPECIFIC), 'T' (NOT CASESPECIFIC))]
[parameters: ('pm', 'versionInfo')]
(Background on this error at: http://sqlalche.me/e/e3q8)
就好像库向 Teradata 服务器发送了一个格式错误的查询...这是否合理?我该怎么办?
谢谢
我知道您也将此问题发布到 Teradata 社区论坛,相关团队的人员会在那里回复。
如果您尝试将 teradataml 与旧版本的 Teradata 数据库一起使用,就会出现您遇到的错误。您使用的是什么数据库版本?
请注意,teradataml 需要 Teradata SQL Engine 16.20 或更高版本。