使用加密密码时,由于字符串转义代码中的字符'C‘无效而导致无法解析JSON连接参数的Get错误
更新到最新版本的TeradataSQL (16.20.0.48)以获得快速加载支持。我的密码使用存储的密码保护进行加密,并与其他teradata sql命令一起使用。当使用fastload的'{fn teradata_try_fastload}‘函数时,我会得到连接错误。当我用实际的密码替换密码时,代码就可以工作了。
变量
userID = 'userID'
userPWD3 = 'password' #works with everything
userPWD = r'ENCRYPTED_PASSWORD(file:\\Path\JTErc\PassKey.properties,file:\\Path\JTErc\EncPass.properties)' #works with the CREATE and DROP tables, but not fastload连接字符串
con = teradatasql.connect (host = 'host',user=userID,password=userPWD3)快速加载
with con.cursor() as cur:
sRequest = "{fn teradata_nativesql}{fn teradata_autocommit_off}"
print (sRequest)
cur.execute (sRequest)
aaoValues = [[1,None,],]
sInsert = "{fn teradata_try_fastload}INSERT INTO " + sTableName + "(?, ?)"
print (sInsert)
cur.execute (sInsert, aaoValues)获取以下错误:
File "AppData\Local\Continuum\anaconda3\lib\site-packages\teradatasql\__init__.py", line 770, in executemany
raise OperationalError (sErr)
OperationalError: Unable to parse JSON connection parameters
at gosqldriver/teradatasql.ParseConParams ConParams.go:59
at gosqldriver/teradatasql.(*teradataFastLoadManager).connectFastLoad TeradataFastLoadManager.go:548
at gosqldriver/teradatasql.(*teradataFastLoadManager).executeInsert TeradataFastLoadManager.go:1170
at gosqldriver/teradatasql.newTeradataRows TeradataRows.go:287
at gosqldriver/teradatasql.(*teradataStatement).QueryContext TeradataStatement.go:122
at gosqldriver/teradatasql.(*teradataConnection).QueryContext TeradataConnection.go:2021
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:598
at main._cgoexpwrap_e6e101e164fa_goCreateRows _cgo_gotypes.go:331
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
Caused by invalid character 'C' in string escape code发布于 2019-10-04 03:25:23
此问题对应于具有存储密码保护的GOSQL-45 FastLoad互操作。它已在teradatasql 16.20.0.49中修复,该版本现在可从pypi获得。
https://stackoverflow.com/questions/57860660
复制相似问题