使用SQLALCHEMY连接到Oracle数据库
发布时间:2020-12-12 13:18:31 所属栏目:百科 来源:网络整理
导读:我能够成功连接到sqlite数据库并使用下面的命令集访问特定的表. from sqlalchemy import create_engine,MetaData,Table,and_from sqlalchemy.sql import selectfrom pandas import DataFrame db = create_engine('sqlite:///pathdatabase.db')metadata = M
我能够成功连接到sqlite数据库并使用下面的命令集访问特定的表.
from sqlalchemy import create_engine,MetaData,Table,and_ from sqlalchemy.sql import select from pandas import DataFrame db = create_engine('sqlite:///pathdatabase.db') metadata = MetaData(db) table = Table('table name',metadata,autoload=True) 我可以使用cx_Oracle库从oracle数据库中获取数据. 但是,当我尝试连接到sqlalchemy中的Oracle数据库时,我收到以下错误 NoSuchTableError: <table name> 我使用了以下命令: db = create_engine('oracle://username:password@hostname:1521/instance name',echo='debug') md = MetaData(bind=db) t = Table('table name',md,autoload=True,schema='schema name') 当我使用以下命令 t= Table('table name',oracle_resolve_synonyms=True) 我收到以下错误: AssertionError: There are multiple tables visible to the schema,you must specify owner 能否请您理解我哪里错了. 谢谢, 罗希特 解决方法from sqlalchemy import create_engine import cx_Oracle host=hostname port=port sid='sid' user='username' password='password' sid = cx_Oracle.makedsn(host,port,sid=sid) cstr = 'oracle://{user}:{password}@{sid}'.format( user=user,password=password,sid=sid ) engine = create_engine( cstr,convert_unicode=False,pool_recycle=10,pool_size=50,echo=True ) result = engine.execute('select * from TABLE') for row in result: print row 这对我有用.也可以创建一个连接对象 conn = engine.connect() conn.close() 这将使关闭连接.即使您从本地端口到远程数据库的隧道,这也可以工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |