【发布时间】: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 用于 Adobe/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 ;