SQLPLUS支援前置行號

yangtingkun發表於2011-05-08

前兩天看到開發版00的帖子:http://www.itpub.net/thread-1424999-1-5.htmlsqlplus這種支援前置行號的方式也是第一次看到,今天有點空,簡單記錄一下。

 

 

其實簡單的說起來,就是一個前置行號的問題,sqlplus的編輯是支援輸入行號的,不過將行號與內容放在一起,sqlplus居然也可以識別,還是第一次看到。

SQL> CREATE
  2
SQL> 2
SP2-0226:
行號 無效
SQL> 2 TABLE
SQL> L
  1 CREATE
  2* TABLE
SQL>

對於sqlplus的命令列編輯方式而言,如果直接給出行號的方式,sqlplus會將當前行置為輸入的行號的這一行,由於目前輸入的行並不存在,因此這裡報錯。

而將行號前置的做法,可以直接將輸入作為目標行寫入。

文章中曾經提到的空行實際上是必須的,因為空行會使前面的SQL結束,這樣對於sqlplus來說,輸入的數值才是前置行號,否則,這個數值就會被當做輸入內容的一部分,見下面的例子:

SQL> CREATE
  2 2 T
  3 .
SQL> L
  1 CREATE
  2* 2 T
SQL>

另外,這個前置行號不一定是連續的,只要大於現有的行,就能保證新輸入的結果在最後一行出現:

SQL> CREATE
  2
SQL> 5 TABLE
SQL> 10 T
SQL> 20 (ID NUMBER)
SQL> L
  1 CREATE
  2 TABLE
  3 T
  4* (ID NUMBER)

但是這種前置行號必須要遞增,才能保證新輸入的結果追加到sqlplus儲存的SQL的尾部,否則就會改寫前面的內容:

SQL> CREATE
  2
SQL> 5 TABLE
SQL> 10 T
SQL> 2 TYPE
SQL> L
  1 CREATE
  2 TYPE
  3* T

這種方式是sqlplus行編輯的一種快速新增修改指定行的方法,不過以前在用sqlplus的時候一直沒有發現這種功能。

 

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

相關文章