首页 > 解决方案 > 如何在 Oracle 中的特定(主)键值之后获取数据?

问题描述

我正在研究以下代码。我相信可能会有一个查询来做到这一点。

dsn_tns = cx_Oracle.makedsn(database_host, database_port, database_service)
connection = cx_Oracle.connect(database_username, database_password, dsn_tns, cx_Oracle.SYSDBA)
print("Database connected")
cursor = connection.cursor()
cursor.execute("SELECT * FROM " + database_table)
records = cursor.fetchall()

任何人有任何改进的想法吗?

标签: pythondatabaseoraclefetch

解决方案


是的。您可以使用这样的查询

SELECT * FROM tbl WHERE pk >= some_value;

表上的主键由索引备份,因此在该 WHERE 子句中指定的搜索和过滤作业是有效的。数据库找到满足条件的第一行,然后依次读取其余行。这称为索引范围扫描。

专业提示:避免使用 ,SELECT *而是使用SELECT col, col2, col3,给出您实际需要的表格列的名称。它节省了数据库服务器上的工作,并使您的查询对表中可能的未来更改更具弹性。


推荐阅读