SQL> show all --查看所有68個系統(tǒng)變量值 SQL> show user --顯示當前連接用戶 SQL> show error --顯示錯誤 SQL> set heading off --禁止輸出列標題,默認值為ON SQL> set feedback off --禁止顯示最后一行的計數(shù)反饋信息,默認值為"對6個或更多的記錄,回送ON" SQL> set timing on --默認為OFF,設置查詢耗時,可用來估計SQL語句的執(zhí)行時間,測試性能 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是為了顯示更多的內(nèi)容,因為很多數(shù)據(jù)字典視圖中用到了long數(shù)據(jù)類型,如: 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、用戶需要對數(shù)據(jù)庫用戶下的每一張表都執(zhí)行一個相同的SQL操作,這時,一遍、一遍的鍵入SQL語句是很麻煩的 實現(xiàn)方法: SQL> set heading off --禁止輸出列標題 SQL> set feedback off --禁止顯示最后一行的計數(shù)反饋信息 列出當前用戶下所有同義詞的定義,可用來測試同義詞的真實存在性 select 'desc '||tname from tab where tabtype='SYNONYM'; 查詢當前用戶下所有表的記錄數(shù) 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; 快速編譯所有視圖 ----當在把數(shù)據(jù)庫倒入到新的服務器上后(數(shù)據(jù)庫重建),需要將視圖重新編譯一遍, ----因為該表空間視圖到其它表空間的表的連接會出現(xiàn)問題,可以利用PL/SQL的語言特性,快速編譯。 SQL> SPOOL ON.SQL SQL> SELECT'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB; SQL> SPOOL OFF 然后執(zhí)行ON.SQL即可。 SQL> @ON.SQL 當然,授權和創(chuàng)建同義詞也可以快速進行,如: SQL> SELECT 'GRANT SELECT ON '||TNAME||' TO 用戶名;' FROM TAB; SQL> SELECT 'CREATE SYNONYM '||TNAME||' FOR 用戶名.'||TNAME||';' FROM TAB; 命令列表: 假設當前執(zhí)行命令為:select * from tab; (a)ppend 添加文本到緩沖區(qū)當前行尾 a order by tname 結果:select * from tab order by tname; ?。ㄗⅲ篴后面跟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 顯示緩沖區(qū)中所有行 (l)ist n 顯示緩沖區(qū)中第 n 行 (l)ist m n 顯示緩沖區(qū)中 m 到 n 行 run 執(zhí)行當前緩沖區(qū)的命令 / 執(zhí)行當前緩沖區(qū)的命令 r 執(zhí)行當前緩沖區(qū)的命令 @文件名 運行調(diào)入內(nèi)存的sql文件,如: SQL> edit s回車> 如果當前目錄下不存在s.sql文件,則系統(tǒng)自動生成s.sql文件, 在其中輸入"select * from tab;",存盤退出。 SQL> @s回車> 系統(tǒng)會自動查詢當前用戶下的所有表、視圖、同義詞。 @@文件名 在.sql文件中調(diào)用令一個.sql文件時使用 save 文件名 將緩沖區(qū)的命令以文件方式存盤,缺省文件擴展名為.sql get 文件名 調(diào)入存盤的sql文件 start 文件名 運行調(diào)入內(nèi)存的sql文件 spool 文件名 把這之后的各種操作及執(zhí)行結果"假脫機"即存盤到磁盤文件上,默認文件擴展名為.lst spool 顯示當前的"假脫機"狀態(tài) 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個系統(tǒng)變量值 edit 打開默認編輯器,Windows系統(tǒng)中默認是notepad.exe,把緩沖區(qū)中最后一條SQL語句調(diào)入afiedt.buf文件中進行編輯 edit 文件名 把當前目錄中指定的.sql文件調(diào)入編輯器進行編輯 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 則執(zhí)行的指令變?yōu)椋? SELECT emp_id, emp_name, emp_dept FROM Employees WHERE emp_age > 30 c 命令用于修改當前語句中的字符,比如在上述語句運行后輸入: c /emp_name/emp_age/則執(zhí)行的指令變?yōu)椋? SELECT emp_id, emp_age, emp_dept FROM Employees WHERE emp_age > 30 del n 命令用于刪除第n行指令,比如在上述語句運行后輸入: DEL 3 則執(zhí)行的指令變?yōu)椋? SELECT emp_id, emp_age, emp_dept FROM Employees