熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle sqlplus 常用命令大全

2013-11-13 22:25:04  來源: Oracle 

  SQL> show all 查看所有個系統變量值

  SQL> show user 顯示當前連接用戶

  SQL> show error   顯示錯誤

  SQL> set heading off 禁止輸出列標題默認值為ON

  SQL> set feedback off 禁止顯示最後一行的計數反饋信息默認值為"對個或更多的記錄回送ON"

  SQL> set timing on 默認為OFF設置查詢耗時可用來估計SQL語句的執行時間測試性能

  SQL> set sqlprompt "SQL> " 設置默認提示符默認值就是"SQL> "

  SQL> set linesize 設置屏幕顯示行寬默認

  SQL> set autocommit ON 設置是否自動提交默認為OFF

  SQL> set pause on 默認為OFF設置暫停會使屏幕顯示停止等待按下ENTER鍵再顯示下一頁

  SQL> set arraysize 默認為

  SQL> set long 默認為

  說明

  long值默認為設置是為了顯示更多的內容因為很多數據字典視圖中用到了long數據類型

  SQL> desc user_views

  列名 可空值否 類型

  

  VIEW_NAME NOT NULL VARCHAR()

  TEXT_LENGTH NUMBER

  TEXT LONG

  SQL> define a = :: 定義局部變量如果想用一個類似在各種顯示中所包括的回車那樣的常量

  可以用define命令來設置

  SQL> select &a from dual;

  原值 : select &a from dual

  新值 : select :: from dual

  ::

  

   ::

  問題提出

  用戶需要對數據庫用戶下的每一張表都執行一個相同的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>;

  快速編譯所有視圖

  當在把數據庫倒入到新的服務器上後(數據庫重建)需要將視圖重新編譯一遍

  因為該表空間視圖到其它表空間的表的連接會出現問題可以利用PL/SQL的語言特性快速編譯

  SQL> SPOOL ONSQL

  SQL> SELECTALTER VIEW ||TNAME|| COMPILE; FROM TAB;

  SQL> SPOOL OFF

  然後執行ONSQL即可

  SQL> @ONSQL

  當然授權和創建同義詞也可以快速進行

  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後面跟個空格)

  (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<回車>

  如果當前目錄下不存在ssql文件則系統自動生成ssql文件

  在其中輸入"select * from tab;"存盤退出

  SQL> @s<回車>

  系統會自動查詢當前用戶下的所有表視圖同義詞

  @@文件名     在sql文件中調用令一個sql文件時使用

  save 文件名   將緩沖區的命令以文件方式存盤缺省文件擴展名為sql

  get 文件名    調入存盤的sql文件

  start 文件名   運行調入內存的sql文件

  spool 文件名   把這之後的各種操作及執行結果"假脫機"即存盤到磁盤文件上默認文件擴展名為lst

  spool      顯示當前的"假脫機"狀態

  spool off    停止輸出

  例

  SQL> spool a

  SQL> spool

  正假脫機到 ALST

  SQL> spool off

  SQL> spool

  當前無假脫機

  exit       退出SQL*PLUS

  desc 表名    顯示表的結構

  show user    顯示當前連接用戶

  show error    顯示錯誤

  show all     顯示所有個系統變量值

  edit       打開默認編輯器Windows系統中默認是notepadexe把緩沖區中最後一條SQL語句調入afiedtbuf文件中進行編輯

  edit 文件名   把當前目錄中指定的sql文件調入編輯器進行編輯

  clear screen   清空當前屏幕顯示

  二Oracle sqlplus語句編輯命令

  首先我們輸入這樣一條指令

  SELECT emp_id emp_name

  FROM Employees

  input 命令可以接著上一條指令的後面添加語句比如在上述語句運行後輸入

  input WHERE emp_age >

  便可得到如下指令

  SELECT emp_id emp_name

  FROM Employees

  WHERE emp_age >

  ln 命令用於指定對以輸入的第n行語句進行操作比如在上述語句運行後輸入

  l則當前選中的語句行即為

  SELECT emp_id emp_name

  (語句前有"*"表示)

  a 命令用於直接在當前行的末尾加上字符比如在上述語句運行後輸入

  a emp_dept

  則執行的指令變為

  SELECT emp_id emp_name emp_dept

  FROM Employees

  WHERE emp_age >

  c 命令用於修改當前語句中的字符比如在上述語句運行後輸入

  c /emp_name/emp_age/則執行的指令變為

  SELECT emp_id emp_age emp_dept

  FROM Employees

  WHERE emp_age >

  del n 命令用於刪除第n行指令比如在上述語句運行後輸入

  DEL

  則執行的指令變為

  SELECT emp_id emp_age emp_dept

  FROM Employees


From:http://tw.wingwit.com/Article/program/Oracle/201311/19055.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.