又一个和注释有关的问题。
sqlplus注释导致语句重复执行:https://yangtingkun.net/?p=1155
和上一个错误类似,不过这个问题可能会使得用户认为SQLPLUS出现异常。
SQL> SELECT
2 1
3 FROM
4 dual;
1
----------
1
SQL> SELECT /*
2 abc
3
SQL> select /*
2 abc
3 def
4 */
5 1
6 FROM dual;
1
----------
1 |
SQL> select
2 1
3 from
4 dual;
1
----------
1
SQL> select /*
2 abc
3
SQL> select /*
2 abc
3 def
4 */
5 1
6 from dual;
1
----------
1
可以看到,对于正常的SQL语句,回车后自动会变成2、3依次类推的行号,而对于行中的注释也是相同的处理方式。
而且在默认的sqlblanklines为OFF的设置下,如果出现一个空行,就会直接导致SQL的结束,而不管十分处于注释之中。
下面看这个例子:
SQL> /* select
SQL> abc
SQL> * from dual;
SQL>
SQL>
SQL>
SQL> select 1 from dual;
SQL> /
SQL> exit
SQL> l
SQL> exit
SQL> */
SQL> SELECT 1 FROM dual;
1
----------
1 |
SQL> /* select
SQL> abc
SQL> * from dual;
SQL>
SQL>
SQL>
SQL> select 1 from dual;
SQL> /
SQL> exit
SQL> l
SQL> exit
SQL> */
SQL> select 1 from dual;
1
----------
1
如果注释出现在行首,那么只要不出现注释终结符*/,那么其他所有的命令、空回车等等全部无视。如果不了解这个特性,会直接认为SQLPLUS已经挂掉了。
sqlplus注释行号错误的问题
又一个和注释有关的问题。
sqlplus注释导致语句重复执行:https://yangtingkun.net/?p=1155
和上一个错误类似,不过这个问题可能会使得用户认为SQLPLUS出现异常。
可以看到,对于正常的SQL语句,回车后自动会变成2、3依次类推的行号,而对于行中的注释也是相同的处理方式。
而且在默认的sqlblanklines为OFF的设置下,如果出现一个空行,就会直接导致SQL的结束,而不管十分处于注释之中。
下面看这个例子:
如果注释出现在行首,那么只要不出现注释终结符*/,那么其他所有的命令、空回车等等全部无视。如果不了解这个特性,会直接认为SQLPLUS已经挂掉了。