我最近开始学习Oracle SQL,对于终止分号是否是必需的(或者,实际上,它是否是您正在使用的特定数据库程序的一个特性)感到有点困惑。
在工作中,我必须使用DBVisualizer,并且总是有一个终止分号,但在“Oracle SQL by Example”这本书中,它一直是缺少的。有没有人能开导一下我?谢谢。
发布于 2012-11-11 00:30:31
dba.stackexchange的Here也是一个类似的问题。被接受的答案指出,本地实例的命令在返回时执行,而服务器的多行命令在分号上执行。
发布于 2012-11-11 00:46:38
分号是终止符还是分隔符的问题在计算机语言中已经有40多年的历史了。比较Pascal和Java。
如果在SQL中接受分号作为分隔符,那么在interactive sql中可能不需要分号,就像在Oracle的SQL/plus解释器中一样。但是SQL解析器确实有它的工作要做。SQL显然不是为了简化解析器的编写而设计的。
请考虑以下内容:
select 
    College_Name,
    City
from 
    Colleges解析器如何知道命令不会继续执行下面的内容?
where
     State = 'CA'如果还可以输入由某种开始-结束对括起来的一系列命令,那么解析器的工作就会变得更加困难。分号对解析器有很大的帮助。
在交互式SQL的某些方言中,按两次Enter键可以触发执行。在另一些情况下,使用像"go“这样的特殊命令来实现此目的。
https://stackoverflow.com/questions/13323205
复制相似问题