show和set命令是兩條用于維護(hù)SQL*Plus系統(tǒng)變量的命令

  SQL> show all --查看所有68個(gè)系統(tǒng)變量值

  SQL> show user --顯示當(dāng)前連接用戶(hù)

  SQL> show error                --顯示錯(cuò)誤

  SQL> set heading off --禁止輸出列標(biāo)題,默認(rèn)值為ON

  SQL> set feedback off --禁止顯示最后一行的計(jì)數(shù)反饋信息,默認(rèn)值為"對(duì)6個(gè)或更多的記錄,回送ON"

  SQL> set timing on --默認(rèn)為OFF,設(shè)置查詢(xún)耗時(shí),可用來(lái)估計(jì)SQL語(yǔ)句的執(zhí)行時(shí)間,測(cè)試性能

  SQL> set sqlprompt "SQL> " --設(shè)置默認(rèn)提示符,默認(rèn)值就是"SQL> "

  SQL> set linesize 1000 --設(shè)置屏幕顯示行寬,默認(rèn)100

  SQL> set autocommit ON --設(shè)置是否自動(dòng)提交,默認(rèn)為OFF

  SQL> set pause on --默認(rèn)為OFF,設(shè)置暫停,會(huì)使屏幕顯示停止,等待按下ENTER鍵,再顯示下一頁(yè)

  SQL> set arraysize 1 --默認(rèn)為15

  SQL> set long 1000 --默認(rèn)為80

  說(shuō)明:
  long值默認(rèn)為80,設(shè)置1000是為了顯示更多的內(nèi)容,因?yàn)楹芏鄶?shù)據(jù)字典視圖中用到了long數(shù)據(jù)類(lèi)型,如:

  SQL> desc user_views
  列名 可空值否 類(lèi)型
  ------------------------------- -------- ----
  VIEW_NAME NOT NULL VARCHAR2(30)
  TEXT_LENGTH NUMBER
  TEXT LONG

  SQL> define a = '''20000101 12:01:01''' --定義局部變量,如果想用一個(gè)類(lèi)似在各種顯示中所包括的回車(chē)那樣的常量,
  --可以用define命令來(lái)設(shè)置
  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


  問(wèn)題提出:
  1、用戶(hù)需要對(duì)數(shù)據(jù)庫(kù)用戶(hù)下的每一張表都執(zhí)行一個(gè)相同的SQL操作,這時(shí),一遍、一遍的鍵入SQL語(yǔ)句是很麻煩的

  實(shí)現(xiàn)方法:
  SQL> set heading off --禁止輸出列標(biāo)題
  SQL> set feedback off --禁止顯示最后一行的計(jì)數(shù)反饋信息

  列出當(dāng)前用戶(hù)下所有同義詞的定義,可用來(lái)測(cè)試同義詞的真實(shí)存在性
  select 'desc '||tname from tab where tabtype='SYNONYM';

  查詢(xún)當(dāng)前用戶(hù)下所有表的記錄數(shù)
  select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';

  把所有符合條件的表的select權(quán)限授予為public
  select 'grant select on '||table_name||' to public;' from user_tables where 《條件》;

  刪除用戶(hù)下各種對(duì)象
  select 'drop '||tabtype||' '||tname from tab;

  刪除符合條件用戶(hù)
  select 'drop user '||username||' cascade;' from all_users where user_id>25;

  快速編譯所有視圖
  ----當(dāng)在把數(shù)據(jù)庫(kù)倒入到新的服務(wù)器上后(數(shù)據(jù)庫(kù)重建),需要將視圖重新編譯一遍,
  ----因?yàn)樵摫砜臻g視圖到其它表空間的表的連接會(huì)出現(xiàn)問(wèn)題,可以利用PL/SQL的語(yǔ)言特性,快速編譯。

  SQL> SPOOL ON.SQL
  SQL> SELECT'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB;
  SQL> SPOOL OFF
  然后執(zhí)行ON.SQL即可。
  SQL> @ON.SQL
  當(dāng)然,授權(quán)和創(chuàng)建同義詞也可以快速進(jìn)行,如:
  SQL> SELECT 'GRANT SELECT ON '||TNAME||' TO 用戶(hù)名;' FROM TAB;
  SQL> SELECT 'CREATE SYNONYM '||TNAME||' FOR 用戶(hù)名.'||TNAME||';' FROM TAB;

  SQL*PLUS常用命令列表

  [ 天堂之水 2002年9月18日,閱讀人數(shù)36人 ]

 


  軟件環(huán)境:
  1、Windows 98 第二版
  2、Oracle數(shù)據(jù)庫(kù)版本為:Personal Oracle7 Release 7.3.4.0.0
  3、Oracle安裝路徑為:C:\ORAWIN95

  命令列表:
  假設(shè)當(dāng)前執(zhí)行命令為:select * from tab;

  (a)ppend     添加文本到緩沖區(qū)當(dāng)前行尾    a order by tname 結(jié)果:select * from tab order by tname;
                                        (注:a后面跟2個(gè)空格)
  (c)hange/old/new 在當(dāng)前行用新的文本替換舊的文本 c/*/tname     結(jié)果:select tname from tab;
  (c)hange/text  從當(dāng)前行刪除文本        c/tab       結(jié)果:select tname from ;
  del       刪除當(dāng)前行
  del n      刪除第n行
  (i)nput 文本   在當(dāng)前行之后添加一行
  (l)ist      顯示緩沖區(qū)中所有行
  (l)ist n     顯示緩沖區(qū)中第 n 行
  (l)ist m n    顯示緩沖區(qū)中 m 到 n 行
  run       執(zhí)行當(dāng)前緩沖區(qū)的命令
  /        執(zhí)行當(dāng)前緩沖區(qū)的命令
  r        執(zhí)行當(dāng)前緩沖區(qū)的命令
  @文件名     運(yùn)行調(diào)入內(nèi)存的sql文件,如:

  SQL> edit s<回車(chē)>
  如果當(dāng)前目錄下不存在s.sql文件,則系統(tǒng)自動(dòng)生成s.sql文件,
  在其中輸入“select * from tab;”,存盤(pán)退出。

  SQL> @s<回車(chē)>
  系統(tǒng)會(huì)自動(dòng)查詢(xún)當(dāng)前用戶(hù)下的所有表、視圖、同義詞。

  @@文件名     在.sql文件中調(diào)用令一個(gè).sql文件時(shí)使用

  save 文件名   將緩沖區(qū)的命令以文件方式存盤(pán),缺省文件擴(kuò)展名為.sql
  get 文件名    調(diào)入存盤(pán)的sql文件
  start 文件名   運(yùn)行調(diào)入內(nèi)存的sql文件

  spool 文件名   把這之后的各種操作及執(zhí)行結(jié)果“假脫機(jī)”即存盤(pán)到磁盤(pán)文件上,默認(rèn)文件擴(kuò)展名為.lst
  spool      顯示當(dāng)前的“假脫機(jī)”狀態(tài)
  spool off    停止輸出

  例:
  SQL> spool a
  SQL> spool
  正假脫機(jī)到 A.LST
  SQL> spool off
  SQL> spool
  當(dāng)前無(wú)假脫機(jī)


  exit       退出SQL*PLUS
  desc 表名    顯示表的結(jié)構(gòu)
  show user    顯示當(dāng)前連接用戶(hù)
  show error    顯示錯(cuò)誤
  show all     顯示所有68個(gè)系統(tǒng)變量值
  edit       打開(kāi)默認(rèn)編輯器,Windows系統(tǒng)中默認(rèn)是notepad.exe,把緩沖區(qū)中最后一條SQL語(yǔ)句調(diào)入afiedt.buf文件中進(jìn)行編輯
  edit 文件名   把當(dāng)前目錄中指定的.sql文件調(diào)入編輯器進(jìn)行編輯

  clear screen   清空當(dāng)前屏幕顯示