我试图使用python sqlalchemy来查询我们使用ODBC的PostgreSQL数据库视图,但我得到的错误是
{ProgrammingError}(pyodbc.ProgrammingError) ('42883', '[42883] ERROR: function schema_name() does not exist;\nError while execute the query (1) (SQLExecDirectW) ') [SQL: SELECT schema_name() (关于这个错误的背景资料在: https://sqlalche.me/e/14/f405 )
使用下面的代码,我成功地创建了连接引擎,但执行查询似乎是个问题。
当使用'pyodbc'或'psycopg2'建立连接和查询数据时,确实完美地工作,但有一个警告
'UserWarning: pandas只支持SQLAlchemy connectable(engine/connection) ordatabase string URI or sqlite3 DBAPI2 connectionother DBAPI2 objects are not tested, please consider using SQLAlchemy. warnings.warning('
我们为什么要研究如何建立起与 "中国 "的联系? 炼金术士之路
import config
import sqlalchemy
if __name__ == '__main__':
connection_string = (config.odbc('database_odbc.txt'))
connection_url = sqlalchemy.engine.url.URL.create("mssql+pyodbc", query={"odbc_connect": connection_string})
conn = sqlalchemy.create_engine(connection_url)
query_string = """SELECT [column name in view] FROM public.[name of view]"""
df1 = pd.read_sql(query_string, conn)
print(df1.to_string())
conn.close()
print('Database connection closed.')
如前所述,使用其他方法,查询可以完美运行。我已经尝试了数据库视图的不同语法,包括
SELECT [视图中的列名] FROM [数据库名称].public.[视图名称]
SELECT [视图中的列名] FROM [视图的名称]
和更多,但没有成功。
希望得到任何帮助,谢谢!