Oracle sqlplus评论

Rne*_*net 2 sql database oracle sqlplus

为什么以下insert语句在执行时不起作用 sqlplus <connect> @file

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1' --a
                 ,'2' --b
                 ,'3'); --c
Run Code Online (Sandbox Code Playgroud)

但它的工作没有评论即

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1'
                 ,'2'
                 ,'3');
Run Code Online (Sandbox Code Playgroud)

sqlplus是否会压扁文件,即在一行上执行整个操作?这可能会导致该线的其余部分被注释掉?

Nic*_*nov 10

第一个insert语句不起作用只是因为--c您在语句终止符之后放置的最后一条注释.SQL*Plus在语句终止符后不允许任何文本(在这种情况下为';'分号).因此,您的第一个insert语句的这个版本将成功执行:

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1' --a
                 ,'2' --b
                 ,'3'); 
Run Code Online (Sandbox Code Playgroud)

这个也是如此:

INSERT INTO abc ( a
                 ,b
                 ,c)
         VALUES ( '1' --a
                 ,'2' --b
                 ,'3') --c;
Run Code Online (Sandbox Code Playgroud)