2024-09-29 19:20:30 发布
网友
考虑下面的代码: 现在,下面的工作
connection = cx_Oracle.connect(dsn = 'DSNAME')
但是当我使用下面的SqlAlchemy格式时,它不起作用,我得到TypeError: Invalid arguments dsn passed:
TypeError: Invalid arguments dsn passed
connection = create_engine('oracle+cx_oracle://' , dsn = 'DSNAME')
SQLAlchemy需要一个数据库连接URI,在their documentation上有一篇关于它的文章。它需要格式
oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
你试过以下方法吗
connection = create_engine('oracle+cx_oracle://' + 'DSNAME')
这似乎是一篇很老的文章,我尝试了下面的代码,它很有效。希望这有帮助。提供空用户名/密码时,从钱包中读取,位置在sqlnet.ora中提到
tnsnames.ora:
t1=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ip)(PORT=1521)(KEY=dbpdb1))(CONNECT_DATA=(SERVICE_NAME=dbsvc1.oracle.com)))
sqlnet.ora:
钱包位置= (来源)= (方法=文件) (b)数据的方法= (目录=$walletdir) ) ) SQLNET.WALLET\u OVERRIDE=TRUE
from sqlalchemy import create_engine cstr='oracle://:@t1' print(cstr) engine = create_engine( cstr, convert_unicode=False, echo=True ) s='select * from emp' conn = engine.connect() result = conn.execute(s) for row in result: print (row)
SQLAlchemy需要一个数据库连接URI,在their documentation上有一篇关于它的文章。它需要格式
oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
你试过以下方法吗
这似乎是一篇很老的文章,我尝试了下面的代码,它很有效。希望这有帮助。提供空用户名/密码时,从钱包中读取,位置在sqlnet.ora中提到
tnsnames.ora:
t1=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ip)(PORT=1521)(KEY=dbpdb1))(CONNECT_DATA=(SERVICE_NAME=dbsvc1.oracle.com)))
sqlnet.ora:
钱包位置= (来源)= (方法=文件) (b)数据的方法= (目录=$walletdir) ) ) SQLNET.WALLET\u OVERRIDE=TRUE
相关问题 更多 >
编程相关推荐