使用sql*plus編輯sql文字
關於編輯使用的命令如下,其實看起來一大堆,主要的命令還是增(input)刪(del)改(change)查(list),按照這個思路來看就會容易很多,有些命令也是選擇性的使用。
Command | Abbreviation | Purpose |
---|---|---|
APPEND text
|
A text
|
adds text at the end of the current line |
CHANGE/old/new |
C/old/new |
changes old to new in the current line |
CHANGE/text
|
C/text
|
deletes text from the current line |
CLEAR BUFFER |
CL BUFF |
deletes all lines |
DEL |
(none) |
deletes the current line |
DEL n
|
(none) |
deletes line n |
DEL * |
(none) |
deletes the current line |
DEL n *
|
(none) |
deletes line n through the current line |
DEL LAST |
(none) |
deletes the last line |
DEL m n |
(none) |
deletes a range of lines (m to n) |
DEL * n
|
(none) |
deletes the current line through line n |
INPUT |
I |
adds one or more lines |
INPUT text
|
I text
|
adds a line consisting of text |
LIST |
; or L |
lists all lines in the SQL buffer |
LIST n
|
L n or n |
lists line n |
LIST * |
L * |
lists the current line |
LIST n *
|
L n *
|
lists line n through the current line |
LIST LAST |
L LAST |
lists the last line |
LIST m n |
L m n |
lists a range of lines (m to n) |
LIST * n
|
L * n
|
lists the current line through line n |
最後使用一個例項來說明一下,我們有下面的sql語句。
select c from
(select * from
(select 'oracle' cc, level no from dual connect by level <= length('oracle'))
model return updated rows
dimension by (no)
measures (cc c, no n)
rules (
c[any] = substr(c[cv()],n[cv()],1)
));
我們需要做的就是把它修改成為一個不可執行的結構,然後把它再改回去。
需要修改成如下的樣子,標黃的部分是需要刪除的。
select c from
(select * from
(select 'oracle' cc, level no from dual connect by level <= length('oracle'))
model return updated rows
dimension by (no)
measures (cc c, no n)
rules (
c[any] = substr(c[cv()],n[cv()],1)
));
可以使用下面的命令來完成。
SQL> select c from
2 (select * from
3 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
4 model return updated rows
5 dimension by (no)
6 measures (cc c, no n)
7 rules (
8 c[any] = substr(c[cv()],n[cv()],1)
9 ));
C
------
o
r
a
c
l
e
6 rows selected.
SQL> del 1 --刪除第1行,第2行變成了第1行
SQL> c/(sel/sel --把第1行的(sel變成sel
1* select * from
SQL> l --列出修改後的語句情況
1 select * from
2 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
3 model return updated rows
4 dimension by (no)
5 measures (cc c, no n)
6 rules (
7 c[any] = substr(c[cv()],n[cv()],1)
8* ))
SQL> del 3 --我們嘗試刪除第3行
SQL> l --列出修改後的語句情況
1 select * from
2 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
3 dimension by (no)
4 measures (cc c, no n)
5 rules (
6 c[any] = substr(c[cv()],n[cv()],1)
7* ))
SQL> l last --列出最後的一行語句
7* ))
SQL> c/))/) --把))替換為)
7* )
SQL> l --列出修改後的sql情況
1 select * from
2 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
3 dimension by (no)
4 measures (cc c, no n)
5 rules (
6 c[any] = substr(c[cv()],n[cv()],1)
7* )
SQL> / --這個時候執行,語句按照期望是不能執行的。
dimension by (no)
*
ERROR at line 3:
ORA-00933: SQL command not properly ended
我們預期的結果達到了,然後我們需要把結果改回去,讓它可執行。
SQL> 0 select c from --我們在第1行前增加一行
SQL> l --列出修改後的sql情況
1 select c from
2 select * from
3 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
4 dimension by (no)
5 measures (cc c, no n)
6 rules (
7 c[any] = substr(c[cv()],n[cv()],1)
8* )
SQL> l 1 2 --列出第1-2行,然後定位在第2行
1 select c from
2* select * from
SQL> c/sel/(sel --把第2行的sel修改為(sel
2* (select * from
SQL> l --列出修改後的sql情況
1 select c from
2 (select * from
3 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
4 dimension by (no)
5 measures (cc c, no n)
6 rules (
7 c[any] = substr(c[cv()],n[cv()],1)
8* )
SQL> c/)/)) --把最後1行的)修改為))
8* ))
SQL> l --把修改後的sql語句列出來
1 select c from
2 (select * from
3 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
4 dimension by (no)
5 measures (cc c, no n)
6 rules (
7 c[any] = substr(c[cv()],n[cv()],1)
8* ))
SQL> l 3 --列出第3行的sql 語句
3* (select 'oracle' cc, level no from dual connect by level <= length('oracle'))
SQL> append model return updated rows --在第3行後追加一行內容
3* (select 'oracle' cc, level no from dual connect by level <= length('oracle'))model return updated rows
SQL> l --列出修改後的sql語句情況
1 select c from
2 (select * from
3 (select 'oracle' cc, level no from dual connect by level <= length('oracle'))model return updated rows
4 dimension by (no)
5 measures (cc c, no n)
6 rules (
7 c[any] = substr(c[cv()],n[cv()],1)
8* ))
SQL> / --執行sql語句的結果
C
------
o
r
a
c
l
e
6 rows selected.
使用sql*plus所做的修改就這樣完成了,其實很多操作還是可控的,修改的過程是一個互動式的過程,和vi操作略有不同,但是還是比較實用的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1439479/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在sql*plus裡編輯SQL命令SQL
- SQL*Plus的行編輯命令(轉)SQL
- 【SQL*Plus】使用EDIT命令快速編輯指令碼檔案SQL指令碼
- 使用SQL*PlusSQL
- 使用edit編輯緩衝區中的sqlSQL
- 【sqlplus】SQL*Plus命令使用大全SQL
- 【SQL*Plus】使用SQL*Plus的Preliminary方式連線資料庫SQL資料庫
- 【SQL*Plus】在SQL*Plus中謹慎使用Ctrl+S快捷鍵SQL
- 【SQL*Plus】使用SQL*Plus的-S選項精簡輸出資訊SQL
- sql plus命令使用總結SQL
- SQL/PLUS命令的使用大全SQL
- SQL*PLUS命令的使用大全SQL
- SQL總結(四)編輯類SQL
- Linux下文字編輯器顯示sql指令碼中文亂碼LinuxSQL指令碼
- 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle例項SQLOracle
- [Djangorestframework]-富文字編輯器的使用DjangoRESTFramework
- SSM使用UEditor富文字編輯器SSM
- ORACLE SQL and SQL*PLUS (strong recommend)OracleSQL
- sql之27 using sql*plusSQL
- sql之26 using sql*plusSQL
- SQL入門之6 sql*plusSQL
- css文字編輯CSS
- monaco-editor 實現SQL編輯器SQL
- Oracle使用SQL*Plus生成html檔案OracleSQLHTML
- SQL PLUS命令使用大全(轉,特有用)SQL
- SQL*PLUS命令的使用大全(一)薦SQL
- 使用sql*plus就要show一下SQL
- SQL*PLUS命令的使用大全(zt)(轉)SQL
- 【SQL*Plus】使用BREAK和COMPUTE在SQL*Plus中得到分組統計結果SQL
- SQL*Plus安全(一)SQL
- SQL*Plus安全(二)SQL
- SQL*PLUS安全(三)SQL
- SQL*PLUS安全(四)SQL
- SQL*Plus Substitution VariablesSQL
- set autotrace in SQL*PlusSQL
- sql*plus入門SQL
- 3.1.1.1 使用 SQL*Plus 啟動資料庫SQL資料庫
- 【SQL*Plus】11g中使用SQL*Plus的-S選項依然可以看到“Enter password:”問題SQL