sql - Oracle sqlplus 注释

标签 sql database oracle sqlplus

为什么像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 是否将文件展平,即在一行上执行整个文件?这可能会导致该行的其余部分被注释掉?

最佳答案

第一个insert 语句没有起作用 只是因为最后一条注释--c 您放在语句终止符之后。 SQL*Plus 不允许在语句终止符(在本例中为“;”分号)之后有任何文本。所以这个版本的第一个 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;

关于sql - Oracle sqlplus 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18516132/

相关文章:

SQL Server Not(A=B 和 C=D)与(A<> B 或 C<> D)

sql - 无效的列名?

python - 按层次结构存储位置 - 如何克服?

mysql - 数据未插入 Node.js 实时通知应用程序中的 Mysql 数据库中

mysql - 如何使用子查询mysql获取学生列表中的兴趣爱好

sql - 如何在oracle sql中将空值设置为默认值

sql - TypeORM - 如何删除最后添加的行?

python - PostgreSQL 不使用 psycopg2 在 AWS Lambda 上的 Python 中插入

database - Oracle 针对高容量写入和低容量读取的建议

mysql - 从具有值范围的列中获取数据