首頁  >  文章  >  php教程  >  oracle sqlplus 常用指令大全

oracle sqlplus 常用指令大全

高洛峰
高洛峰原創
2017-01-06 11:23:531293瀏覽

SQL> show all --查看所有68個系統變數值 
SQL> show user --顯示目前連線使用者 
SQL> show error   --顯示錯誤 
SQL> set heading off --禁止輸出列標題,預設值為顯示錯誤 
SQL> set heading off --禁止輸出列標題,預設值為ON 
SQL> set feedback off --禁止顯示最後一行的計數回饋訊息,預設值為"對6個或更多的記錄,回送ON" 
SQL> set timing on --預設值為OFF,設定查詢耗時,可用來估計SQL語句的執行時間,測試效能 
SQL> set sqlprompt "SQL> " --設定預設提示符,預設值就是"SQL> " 
SQL> set linesize 1000 --設定畫面顯示行寬,預設100 
SQL> set autocommit ON --設定是否自動提交,預設為OFF 
SQL> set autocommit ON --設定是否自動提交,預設為OFF 
SQL> set autocommit ON --設定是否自動提交,預設為OFF 
SQL> set pause on --預設為OFF,設定暫停,會使螢幕顯示停止,等待按下ENTER鍵,再顯示下一頁 
SQL> set arraysize 1 --預設為15 
SQL> set long 1000 --預設為80 
說明: 
long值預設為80,設定1000是為了顯示更多的內容,因為很多資料字典檢視中用到了long資料型,如: 
SQL> desc user_views 
欄位名稱可空值否類型 
------------------------------- -------- ---- 
VIEW_NAME NOT NULL VARCHAR2(30) 
TEXT_LENGTH NUMBER 
TEXT LONG 
SQL> define a = '''20000101 12:01:01''' --定義局部變數,如果想用一個類似在各種顯示中所包含的回車那樣的常數, 
--可以用define指令來設定 
SQL> select &a from dual; 
原值1: select &a from dual 
新值1: select '20000101 12:01:01' from dual 
'2000010112:01:01 
----------------- 
20000101 12:01:01 
問題提出問題: 
使用者需要對資料庫使用者下的每一張表都執行一個相同的SQL操作,這時,一遍、一遍的鍵入SQL語句是很麻煩的 
實作方法: 
SQL> set heading off --禁止輸出列標題 
SQL> set feedback off --禁止顯示最後一行的計數回饋資訊 
列出所有同義字在目前使用者下的定義,可用來測試同義字的真實存在性 
select 'desc '||tname from tab where tabtype='SYNONYM' ; 
查詢目前使用者下所有資料表的記錄數 
select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';
把所有符合條件的表的select權限授予為public 
select 'grant select on '||table_name||' to public;' from user_tables where 《條件》; 
刪除用戶下各種對象 
select 'drop '| |tabtype||' '||tname from tab; 
刪除符合條件使用者 
select 'drop user '||username||' cascade;' from all_users where user_id>25; 
快速編譯所有視圖 
----當在把資料庫倒入新的伺服器上後(資料庫重建),需要將視圖重新編譯一遍, 
----因為該表空間視圖到其它表空間的表的連接會出現問題,可以利用PL/SQL的語言特性,快速編譯。 
SQL> SPOOL ON.SQL 
SQL> SELECT'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB; 
SQL> SPOOL OFF 
然後執行ON.SQL即可。
SQL> @ON.SQL 
當然,授權和創建同義詞也可以快速進行,例如: 
SQL> SELECT 'GRANT SELECT ON '||TNAME||' TO 使用者名稱;' FROM TAB; 
SQL> SELECT 'CREATE' TO 使用者名稱;' FROM TAB; 
SQL> SELECT 'CREATE SYNONYM '||TNAME||' FOR 使用者名稱.'||TNAME||';' FROM TAB; 
指令清單: 
假設目前執行指令為:select * from tab; 
(a)ppend     新增文字到緩衝區目前行尾a order by tname 結果:select * from tab order by tname; 
                                                                      (註:a後面跟2個空格) 
(c)hange/old/new 在目前行用新的文字取代舊的文字c/ */tname     結果:select tname from tab; 
(c)hange/text  從目前行刪除文字c/tab       n      刪除第n行 
(i)nput 文字在在目前行之後新增一行 
(l)ist      顯示緩衝區中所有行 
(l)ist n     顯示緩衝區中第n 行 
(l)ist m   顯示緩衝區中第n 行 🎜(l)ist m     執行目前緩衝區的命令 🎜/        執行目前緩衝區的指令 
r        執行目前緩衝區的指令 
@設定車標入記憶體的檔案,如檔案則系統自動產生s.sql文件, 
在其中輸入"select * from tab;",記憶體退出。 
SQL> @s 
系統會自動查詢目前使用者下的所有表格、檢視、同義字。
@@檔案名稱在.sql檔案中呼叫令一個.sql檔案時使用 
save 檔案名稱將緩衝區的指令以檔案方式記憶體,缺省檔案副檔名為.sql 
get 檔案名稱調入記憶體的sql檔案 
start 檔案名稱運作調入記憶體的sql檔案 
spool 檔案名稱把這之後的各種操作及執行結果"假脫機"即記憶體到磁碟檔案上,預設檔案副檔名為.lst 
spool       顯示目前的"假脫機"狀態 
spool off    停止輸出 
例: 
SQL> spool a 
SQL> spool 
正假脫機到A.LST 
SQL> spool 
正假脫機到A.LST8      退出SQL* PLUS 
desc 表名顯示表的結構 
show user    顯示目前連接用戶 
show error    顯示錯誤 
show all      顯示錯誤 
show all     〜 預設值器,Windows系統中預設是notepad.exe,把緩衝區中最後一個SQL語句調入afiedt.buf檔案中進行編輯 
edit 檔案名稱把目前目錄中指定的.sql檔案調入編輯器進行編輯 
clear screen   清除目前畫面顯示 
二. Oracle sqlplus語句編輯指令 
首先我們輸入這樣一條指令: 
SELECT emp_id, emp_name 
FROM Employees 
input 指令可以接著上一條指令的後面加入語句,例如在上述語句執行後輸入: 可取得下列指令: 
SELECT emp_id, emp_name 
FROM Employees 
WHERE emp_age > 30 
ln 指令用於指定以輸入的第n行語句進行操作,例如在上述語句執行後輸入的語句: 行即為 
SELECT emp_id, emp_name 
(語句前有"*"表示) 
a 指令用於直接在目前行的結尾加上字符,例如上述語句執行後輸入: 
a , emp_dept 
則執行的指令變成: 
SELECT emp_id, emp_name, emp_dept 
FROM Employees 
WHERE emp_age > 30 
c 指令用於修改目前語句中的字元,例如上述語句執行後輸入: 為: 
SELECT emp_id, emp_age, emp_dept 
FROM Employees 
WHERE emp_age > 30 
del n 指令用於刪除第n行指令,如上述語句執行後輸入: 
del n 指令用於刪除第n個行指令,如同在執行上述說明emp_id, emp_age, emp_dept 
FROM Employees 

更多oracle sqlplus 常用指令大全相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn