Oracle sqlplus注解

wnavrhmk  于 2023-02-18  发布在  Oracle
关注(0)|答案(2)|浏览(122)

为什么下面的insert语句在像sqlplus <connect> @file那样执行时不起作用

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1' --a
                 ,'2' --b
                 ,'3'); --c

但是它可以在没有注解的情况下工作,即

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1'
                 ,'2'
                 ,'3');

sqlplus是否会将文件扁平化,即在一行中执行整个操作?这可能会导致行的其余部分被注解掉?

sauutmhj

sauutmhj1#

第一个insert语句 * 不起作用 ,原因仅在于您在语句终止符后放置了最后一个注解--c。SQLPlus不允许在语句终止符(';'分号)。因此,您的第一个insert语句的此版本将成功执行:

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1' --a
                 ,'2' --b
                 ,'3');

这个也一样

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1' --a
                 ,'2' --b
                 ,'3') --c;
iyzzxitl

iyzzxitl2#

SQL*PLUS允许第二个操作的事实很奇怪,GUI工具认为整个操作是一个注解,其效果是:并没有真正终止SQL。

相关问题