我最近开始学习Oracle SQL,并且对于是否需要终止分号(或者实际上,它是否是您正在使用的特定数据库程序的功能)感到有点困惑。
在工作中,我必须使用DBVisualizer,并且总是有一个终止分号,但在“Oracle SQL by Example”一书中,它始终缺乏。有人可以赐教吗?感谢。
答案 0 :(得分:2)
Here是来自dba.stackexchange的类似问题。接受的答案表明,返回时本地实例的命令执行,而服务器的多行命令以分号执行。
答案 1 :(得分:1)
40多年来,分号是终结者还是分隔符的问题在计算机语言中是一个混乱的问题。比较Pascal和Java。
如果在SQL中接受分号作为分隔符,那么在交互式sql中可能不需要它,就像在Oracle的SQL / plus解释器中那样。但是SQL解析器真的有它的工作。 SQL显然不是为了编写解析器而设计的。
考虑一下:
select
College_Name,
City
from
Colleges
解析器如何知道命令不会继续以下内容?
where
State = 'CA'
如果还可以输入一系列由某种起始端对括起来的命令,那么解析器就会变得更难。分号极大地帮助了解析器。
在交互式SQL的某些方言中,按两次Enter键可以触发执行。在其他情况下,像“go”这样的特殊命令用于此目的。