sqlplus註釋行號錯誤的問題

yangtingkun發表於2012-09-04

又一個和註釋有關的問題。

sqlplus註釋導致語句重複執行:

 

 

和上一個錯誤類似,不過這個問題可能會使得使用者認為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語句,回車後自動會變成23依次類推的行號,而對於行中的註釋也是相同的處理方式。

而且在預設的sqlblanklinesOFF的設定下,如果出現一個空行,就會直接導致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

如果註釋出現在行首,那麼只要不出現註釋終結符*/,那麼其他所有的命令、空回車等等全部無視。如果不瞭解這個特性,會直接認為SQLPLUS已經掛掉了。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-746122/,如需轉載,請註明出處,否則將追究法律責任。

相關文章