我正在尝试使用外部密码存储(Oracle Wallet)来使用oracle sqlalchemy dburi
我尝试使用标准的sqlplus语法进行外部密码存储而没有运气..
sqlalchemy.dburi="oracle:///@PROD"
我可以使用sqlplus成功连接如下:
sqlplus /@PROD
我无法找到有关如何使用sqlalchemy或turbogears的外部密码存储的任何信息?
答案 0 :(得分:0)
关闭顶部评论:确保您运行的是cx_oracle(http://cx-oracle.readthedocs.io/en/latest/releasenotes.html)的5.2.1+版本。在此之前,SessionPools中存在一个错误。
答案 1 :(得分:0)
在深入研究sqlalchemy的源代码的基础上,正确的方法是将next-build
的{{1}}属性(而不是username
属性)设置为您的TNS别名给你的钱包。
使用database
sqlalchemy.engine.url.URL
使用sqlalchemy.engine.url.make_url
import sqlalchemy.engine.url
url = url.make_url('oracle+cx_oracle://')
url.username = '/@PROD'
engine = create_engine(url)
这是因为最终,要使cx_Oracle使用Oracle Wallet,必须在sqlalchemy.engine.url.URL
中使用import sqlalchemy.engine.url
url = url.URL('oracle+cx_oracle', username='/@PROD')
engine = create_engine(url)
参数。
例如
user