首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“'select * from [table_name]”是秘密的光标吗?

问“'select * from [table_name]”是秘密的光标吗?
EN

Stack Overflow用户
提问于 2017-10-31 06:58:47
回答 2查看 1.3K关注 0票数 1

几天前,在一次采访中,我被问到select * from [table_name]是否是一个光标,因为它一次获取多个记录?

如果是,那么是哪种类型?显式还是隐式?为什么?

拜托,如果有人能详细说明这一点,那将是一个很大的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-10-31 07:10:57

Oracle在内部创建一个游标来服务select查询,因此我们称之为隐式游标。

然而,我们将下面的游标称为显式游标,这是您自己创建的,以便有更多的控件。

CURSOR cur IS SELECT col FROM table WHERE condition;

票数 3
EN

Stack Overflow用户

发布于 2017-11-02 16:52:25

是的,每个查询都代表一个游标。

“概念指南”将光标链接到https://docs.oracle.com/database/121/CNCPT/glossary.htm#GUID-4B296BAF-BAC8-4DE7-8128-464F4BA3C366,并将其定义为

内存中保存被解析语句和其他用于处理的信息的区域。私有SQL区域包含数据,例如绑定变量值、查询执行状态信息和查询执行工作区。

PL/SQL语言引用说:

隐式游标是由PL/SQL构造和管理的会话游标。每次运行SELECT或DML语句时,PL/SQL都会打开隐式游标。

和

显式游标是您构造和管理的会话游标。您必须声明和定义一个显式游标,给它一个名称,并将它与一个查询相关联(通常,查询返回多行)。

这些都是PL/SQL中的概念,所以我不确定将它们用于其他客户端的游标是否有意义,例如SQL*Plus或SQL Developer命令行或Java程序。如果在某些PL/SQL代码中使用cursor关键字命名游标,则游标只有“显式”,而且由于您没有(也不能)对命令行中的查询进行命名,所以它更接近于隐含游标的PL/SQL概念。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47029535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档