【问题标题】:Implicit Cursor on SQL GrammarSQL 语法上的隐式游标
【发布时间】:2013-09-28 09:35:25
【问题描述】:

我使用的是帖子中的语法:SQL lex yacc grammar

当我分析 gammar 时,我发现每个“选择语句”都必须在光标之前。

我看到 oracle 数据库放置了一个隐式游标(以防你没有显式声明它)。

编辑:

看看这个文档:

http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/cursor_for_loop_statement.htm

select_statement

SQL SELECT 语句(不是 PL/SQL SELECT INTO 语句)。为了 select_statement,PL/SQL 声明、打开、获取和关闭一个 隐式游标。但是,因为 select_statement 不是 独立语句,隐式游标是内部的——你不能 用名称 SQL 引用它。

http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/sql_cursor.htm

SQL(隐式)游标属性

数据库打开一个 SQL(隐式)游标来处理每个 SQL 不与显式游标关联的语句。每个 SQL (隐式)游标有六个属性,每个属性都返回有用的 有关数据操作语句执行的信息。

在其他数据库中正常吗?

谢谢

【问题讨论】:

  • 请注意标记。 Flex 用于 Adob​​e/Apache UI 框架,Flex-lexer 用于词法分析器。
  • 这是一个常见的错误,我可以理解为什么。如果我能弄清楚如何在 Flex 的“滚动文本”中显示这种区别;我愿意。
  • @Reboog711:编辑标签摘录。评论在标签信息中,但距离太远,人们看不到。
  • 为什么你认为select语句前面一定要有游标?您可以在没有任何光标干预的情况下导出sql_list -> sql ';' -> manipulative_statement ';' -> select_statement ';'
  • 我想,你忘了看select_statement的定义。 select_statement: SELECT opt_all_distinct 选择 INTO target_commalist table_exp ;

标签: sql database cursor


【解决方案1】:

这是一个 Oracle 语义规则,不是语法问题,当然也不是词汇问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2017-08-16
    相关资源
    最近更新 更多