Psycopg2 在函数中使用 Table 和列名作为参数
Psycopg2 Use Table and Column Name as Parameters in a Function
我正在开发一个使用 Postgresql 数据库的程序,并试图创建一个函数,让我传递两个参数,table 和我想要的列。然后该函数将从给定的 table 中检索该列并显示为数据框。当我 运行 我的代码时,我收到以下错误消息:
关系“RAW_MTL”不存在
第 1 行:select“Ball_LT_NUM”来自“RAW_MTL”
我的代码如下:
'''
def get_lot_numbers(table, table_lot):
con = db_connect()
try:
with con:
with con.cursor() as cur:
db_query = sql.SQL("select {field} from {table}").format(
field=sql.Identifier(table_lot),
table=sql.Identifier(table))
cur.execute(db_query)
results = cur.fetchall()
df = pd.DataFrame(results, columns=['Lot Number'])
return df
except (Exception, psycopg2.DatabaseError) as error:
print(error, datetime.now())
finally:
if con is not None:
con.close()
df_lot_numbers = get_lot_numbers(table_lot='Ball_LT_NUM', table='RAW_MTL')
print(df_lot_numbers)
'''
如有任何帮助或指导,我们将不胜感激。
感谢 Adrian,他对我的问题发表了评论。由于数据库中存在多个模式,问题与搜索路径有关。 Link 下面。
https://www.postgresql.org/docs/14/ddl-schemas.html#DDL-SCHEMAS-PATH
我正在开发一个使用 Postgresql 数据库的程序,并试图创建一个函数,让我传递两个参数,table 和我想要的列。然后该函数将从给定的 table 中检索该列并显示为数据框。当我 运行 我的代码时,我收到以下错误消息:
关系“RAW_MTL”不存在 第 1 行:select“Ball_LT_NUM”来自“RAW_MTL”
我的代码如下: '''
def get_lot_numbers(table, table_lot):
con = db_connect()
try:
with con:
with con.cursor() as cur:
db_query = sql.SQL("select {field} from {table}").format(
field=sql.Identifier(table_lot),
table=sql.Identifier(table))
cur.execute(db_query)
results = cur.fetchall()
df = pd.DataFrame(results, columns=['Lot Number'])
return df
except (Exception, psycopg2.DatabaseError) as error:
print(error, datetime.now())
finally:
if con is not None:
con.close()
df_lot_numbers = get_lot_numbers(table_lot='Ball_LT_NUM', table='RAW_MTL')
print(df_lot_numbers)
'''
如有任何帮助或指导,我们将不胜感激。
感谢 Adrian,他对我的问题发表了评论。由于数据库中存在多个模式,问题与搜索路径有关。 Link 下面。
https://www.postgresql.org/docs/14/ddl-schemas.html#DDL-SCHEMAS-PATH