oracle sqlplus 常用命令大全

來源:互聯網
上載者:User

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
問題提出:
1、使用者需要對資料庫使用者下的每一張表都執行一個相同的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
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.