【发布时间】:2014-01-01 12:44:47
【问题描述】:
有没有一种方法可以在不实际使用“ORDER BY”子句的情况下从 oracle 表中获取“有序”结果集?
我正在开发一个从 oracle 表(没有唯一列)中读取数据的应用程序,我想引入某种恢复机制,以便在查询失败(例如获取期间的网络错误)的情况下避免读取行已经提取了。
应用程序是使用oracle OCI开发的,目前使用的是简单的选择查询。
是否有任何有效的机制来实现这一点?
【问题讨论】:
-
恕我直言,如果它没有唯一的列,这不是关系理论意义上的真正表格。您应该添加一些PK并使用它。
-
在数据仓库中,表中没有主键并不罕见
-
不,没有
ORDER BY,就无法从表中获取一致排序的数据。总是有ROWID,但使用它需要您自担风险。 docs.oracle.com/cd/B19306_01/server.102/b14200/…。但当然,如果删除并插入同一行,它可能会得到不同的 rowid。
标签: sql oracle sql-order-by