oracle sqlplus 經常使用命令大全

show和set命令是兩條用於維護SQL*Plus系統變量的命令
SQL> show all --查看全部68個系統變量值  SQL> show user --顯示當前鏈接用戶  SQL> show error   --顯示錯誤  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 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 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       結果:select tname from ;  del       刪除當前行  del n      刪除第n行  (i)nput 文本   在當前行以後添加一行  (l)ist      顯示緩衝區中全部行  (l)ist n     顯示緩衝區中第 n 行  (l)ist m n    顯示緩衝區中 m 到 n 行  run       執行當前緩衝區的命令  /        執行當前緩衝區的命令  r        執行當前緩衝區的命令  @文件名     運行調入內存的sql文件,如:  SQL> edit s<回車>  若是當前目錄下不存在s.sql文件,則系統自動生成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 off  SQL> spool  當前無假脫機  exit       退出SQL*PLUS  desc 表名    顯示錶的結構  show user    顯示當前鏈接用戶  show error    顯示錯誤  show all     顯示全部68個系統變量值  edit       打開默認編輯器,Windows系統中默認是notepad.exe,把緩衝區中最後一條SQL語句調入afiedt.buf文件中進行編輯  edit 文件名   把當前目錄中指定的.sql文件調入編輯器進行編輯  clear screen   清空當前屏幕顯示  二.Oracle sqlplus語句編輯命令  首先咱們輸入這樣一條指令:  SELECT emp_id, emp_name  FROM Employees  input 命令能夠接着上一條指令的後面添加語句,好比在上述語句運行後輸入:  input WHERE emp_age > 30  即可獲得以下指令:  SELECT emp_id, emp_name  FROM Employees  WHERE emp_age > 30  ln 命令用於指定對以輸入的第n行語句進行操做,好比在上述語句運行後輸入:  l1則當前選中的語句行即爲  SELECT emp_id, emp_name  (語句前有"*"表示)  a 命令用於直接在當前行的末尾加上字符,好比在上述語句運行後輸入:  a , emp_dept  則執行的指令變爲:  SELECT emp_id, emp_name, emp_dept  FROM Employees  WHERE emp_age > 30  c 命令用於修改當前語句中的字符,好比在上述語句運行後輸入:  c /emp_name/emp_age/則執行的指令變爲:  SELECT emp_id, emp_age, emp_dept  FROM Employees  WHERE emp_age > 30  del n 命令用於刪除第n行指令,好比在上述語句運行後輸入:  DEL 3  則執行的指令變爲:  SELECT emp_id, emp_age, emp_dept  FROM Employees 
相關文章
相關標籤/搜索