可滚动游标是服务器端构造吗?

Are Scrollable cursors a server side construct?

一般来说游标是一个概念。 当我 运行 通过 jdbc 进行简单的 select * 查询时,我得到的结果 set.That 集存储在客户端上,对吗?但是在 DBMS 下打开了一个 cursor.Since 数据库通过 an.stateless Http API/rest 服务访问,连接关闭,如果结果集,我的 client.And 中有结果集存储在客户端,我可以用它做任何事情;向后,向前等等

那么可滚动游标有什么意义呢?它是否意味着与数据库的状态连接以及结果集存储在服务器的内存中而不是客户端的内存中? 这种情况是否发生在显式打开游标而不是基于集合 SQL 的情况下?

是否也意味着锁定行?

在 Oracle 中(至少到版本 18),可滚动游标存储在客户端。
您可以在文档中找到更多相关信息(见下文):


17.1 Oracle JDBC Implementation Overview for Result Set Support

Oracle JDBC Implementation for Result Set Scrollability

Because the underlying server does not support scrollable cursors, Oracle JDBC must implement scrollability in a separate layer.

It is important to be aware that this is accomplished by using a client-side memory cache to store rows of a scrollable result set.

Note:Because all rows of any scrollable result set are stored in the client-side cache, a situation, where the result set contains many rows, many columns, or very large columns, might cause the client-side Java Virtual Machine (JVM) to fail. Do not specify scrollability for a large result set.