首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有fastload的Teradatasql python模块的连接字符串中使用加密密码的问题

在具有fastload的Teradatasql python模块的连接字符串中使用加密密码的问题
EN

Stack Overflow用户
提问于 2019-09-10 04:15:32
回答 1查看 652关注 0票数 0

使用加密密码时,由于字符串转义代码中的字符'C‘无效而导致无法解析JSON连接参数的Get错误

更新到最新版本的TeradataSQL (16.20.0.48)以获得快速加载支持。我的密码使用存储的密码保护进行加密,并与其他teradata sql命令一起使用。当使用fastload的'{fn teradata_try_fastload}‘函数时,我会得到连接错误。当我用实际的密码替换密码时,代码就可以工作了。

变量

代码语言:javascript
复制
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

连接字符串

代码语言:javascript
复制
con = teradatasql.connect (host = 'host',user=userID,password=userPWD3)

快速加载

代码语言:javascript
复制
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)

获取以下错误:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2019-10-04 03:25:23

此问题对应于具有存储密码保护的GOSQL-45 FastLoad互操作。它已在teradatasql 16.20.0.49中修复,该版本现在可从pypi获得。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57860660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档