Oracle學習筆記:sqlplus 使用精講


一、連接數據庫

  os:僅僅進入sqlplus環境,不連接數據庫

sqlplus /nolog

  os:本機連接

    方式1:操作系統認證登錄:其后的角色不可省略

set ORACLE_SID=TEST_SID
sqlplus /  as { sysdba | sysoper | sysasm }

    方式2:標准用戶登錄:密碼、端口(默認1521)、角色 均可省略。如果密碼省略則提示輸入密碼

set ORACLE_SID=TEST_SID
sqlplus 用戶[/密碼] [ as { sysdba | sysoper | sysasm } ]

或

sqlplus 用戶[/密碼]@本地oracle服務名 [ as { sysdba | sysoper | sysasm } ]

或

sqlplus 用戶[/密碼]@主機[:端口]/oracle服務名 [ as { sysdba | sysoper | sysasm } ]

或

sqlplus 用戶[/密碼]@//主機[:端口]/oracle服務名 [ as { sysdba | sysoper | sysasm } ]

  os:遠程連接

同“本機連接”的“方式2”(除了set ORACLE_SID方式)

  sqlplus:退出到os:默認行為為先commit、再成功退出

{ exit | quit } [ success | failure | warning | n | variable | :bindvariable ]      [ commit | rollback ]

  sqlplus:斷開連接

disc[onnect]

  sqlplus:新建連接

-- 提示用戶名和密碼:僅限本機登錄
conn[ect]  

或

和“os連接到db”一樣

  切換用戶:

先斷開,再重連啊

或

先退出,再登錄啊

 

二、設置sqlplus執行環境

  設置環境變量:set

set environment_variable {?}

  

  查看環境變量的設置:show

-- 查看所有環境變量的設置
show all

--查看指定的環境變量的設置
show environment_variable

或者

--查看指定的環境變量的設置:使用set
set environment --它會給出相關的語法提示

  

  設置信息顯示模式

    提示符

set sqlp[rompt] "_user'@'_connect_identifier>"

    當前os時間

--顯示當前的執行時間
set time on

--關閉當前的執行時間
set time off

    頁數、行數

set pages[ize]=500
set lin[esize]=3000

     dbms_output的信息顯示

--打開顯示
set serverout[put] on [ size { n | unlimited } ] [ format { wrapped | word_wrapped | truncated  } ]

--關閉顯示
set serverout[put] off

   

  設置事務控制:

--打開 自動提交事務:立即提交
set auto[commit] { on | imm[ediate] | n }

--打開 自動提交事務:累計n個事務后提交
set auto[commit] n
--關閉 自動提交事務 
set auto[commit] off

 

  執行時間跟蹤

set timi[ng] on

 

  影響的行數

--打開 顯示影響行數
set feed[back] { 1 | on | n }

--關閉 影響行數
set feed[back] { 0 | off }

 

  執行計划

--顯示執行計划
set autot[race] { on | trace[only] } [ exp[lain] ] [ stat[istics] ]

--關閉執行計划
set autot[race] off

 

 

三、緩沖區執行語句(sql、pl/sql)的編輯處理

  調用外部編輯器:ed【it】

ed[it]

 

  使用sqlplus的編輯命令:增、刪、改:a【ppend】、del、c【hange】、i【nput】

a[ppend] --在當前行后直接輸入字符創,不換行
del --和list類似,見下面
c[hange] --很牛的東東。格式 “ change  sep_charold[sep_char[new[sep_char]]]”:
  1)sep_char為不在old和new中的非字母數字字符(基本上只能是標點符號)
  2)最后的分隔符sep_char可以省略
  3)old不區分大小寫,即大小寫不敏感
  4)old可以指定通配符“...”,用來匹配范圍:...old(開頭 .. 第一次出現)、old...old (前后全匹配)、old...(第一次出現 .. 最后)
  5)如果省略第二個分隔符sep_char(自然也省略后面)、或者省略new(自然也包括后面),則相當於刪除old
i[nput] --在當前行后,輸入新的字符串換行

  更改當前行:默認總是最后一行:l【ist】

--查看所有的行
{ list | ; }

--查看指定的行:* 為當前行;n在緩沖區行數內
list { n | * | last }

--查看指定范圍內的行 從 n 到 m 行:m>=n
list { n | * } { m | * | last}

  

  保存sql語句:sav【e】:默認擴展名為sql,默認行為為create。注意:保存后,末尾的分號“;”會自動去掉;而且緩沖區有且僅有一個sql語句或pl/sql復合語句

sav[e] [file] file_name[.ext] [ create | replace | append  ]

  載入sql語句:get:與save相反

--與 save 命令相反

  

  輸入sql語句的過程中,臨時退出編輯模式 :以井號“#”臨時退出編輯模式

--在輸入sql的模式下,如果輸入未結束。可以再新行中以井號“#”臨時退出編輯模式,進入普通sqlplus的交互模式

  

四、執行結果、替換變量、綁定變量等的 定義、交互、顯示、處理

 

  sqlplus的注釋命令:rem【mark】

rem[ark] 任何文字  -- 類似於os的rem,或者sql的行注釋 “--”

  

  執行os命令:{ host | !}:具體和os有關

--切換退出sqlplus,進入os的shell環境
{ host | ! | $ } 

 --不切換sqlplus,執行os命令
{ host | ! | $ } command

  

   清理各種歷史記錄數據:cl【ear】

--清理 屏幕輸出信息,類似於os的cls
cl[ear] scr[een]

--清理 緩沖區sql語句
cl[ear] buff[er]

--清理 sql 緩沖池記錄
cl[ear] sql

--清理 其他
cl[ear] { breaks | computer | columns | timing }

  

  轉存執行結果:spo【ol】

--輸出 執行結果到 文件。注意:雖然spool的文件第一時間生成,但其中的結果內容到spool off 才寫入!
spo[ol] filename[.ext] [ create | replace | append ] --關閉 spool spo[ol] off

  

  替換變量:sqlplus的【預編譯】宏功能,本質很簡單:def【ine】、acc【ept】、unde【fine】、pro【mpt】、pau【se】

--定義、重新設置新值
方式1:def[ine] substitution_var = text
方式2:acc[ept] substitution_var [ char | date | [ num[ber] ] | binary_float | binary_double  ] --變量類型
                                               [ for[mat] format_str ] --格式
                                               [ default default_value ] --變量的默認值
                                               [ { prompt prompt_text } | nopr[ompt] ] --提示信息
                                               [ hide ] --不顯示用戶輸入,類似於輸入不回顯密碼的輸入


--顯示指定的替換變量
def[ine] substitution_var

--顯示 所有的替換變量
def[ine]

--sqlplus的提示信息:類似於os的echo
pro[mpt] [message_text]

--sqlplus的暫停提示信息:類似於os的pause
pau[se] [message_text]

  

  sqlplus【預定義的替換變量】:一定要注意:這些預定義替換變量都是可以重新定義刪除定義的。是sqlplus的會話級的

_EDITOR:sqlplus的edit命令調用的os文本編輯器
_USER:sqlplus的當前登錄用戶名
_CONNECT_IDENTIFIER:sqlplus的當前連接串
_DATE:sqlplus的當前os日期

  

  綁定變量:sqlplus中?或者說是oracle引擎的【會話變量?】更為合適

 

--定義:綁定變量:bind_variable
var[iable] bind_variable { number | char | char(n  [byte | char ] )  | varchar2(n  [byte | char ] ) | nchar | nchar(n) | nvarchar(n) |  clob | nclob | binary_float | binary_double | refcursor }

--查看:所有定義的綁定變量:定義
var[iable]

--查看:指定名稱的綁定變量:定義
var[iable] bind_variable

--打印、輸出:所有綁定變量的:內容
print

--打印、輸出:指定名稱綁定變量的:內容
print bind_variable

--打印、輸出:自動打印所涉及的綁定變量的:內容 : 允許自動打印、輸出
set autoprint on

--打印、輸出:自動打印所涉及的綁定變量的:內容 : 禁止自動打印、輸出
set autoprint off

  

五、執行os腳本

  os啟動sqlplus時,執行指定的os中sql腳本:sqlplus的啟動參數

sqlplus 【options】【logon】 @{URL | filename [.ext] [args...] }
--注意“@”符號

 

  sqlplus內:運行os中的sql腳本:{ start | @ | @@ }:“@”和“@@”的區別在於“@@”指定sql腳本(父腳本)中的要運行的sql腳本(子腳本),(子腳本)的查詢路徑就在(父腳本)相同的目錄下。當然,如果都用絕對路徑,就沒區別了。

{ sta[rt] | @ | @@ } { url | os_filename[.ext] } [ arg... ]

  

  sqlplus內:運行緩沖區內的腳本內容:{ run | /}

{ r[un] | / }

  

 

六、DBA實用功能

  顯示初始化參數:show parameters

--顯示 所有的初始化參數 信息
show parameters

--顯示 指定的初始化參數信息:like %?%
show parameters {?}

  顯示SGA信息

show sga

  

  顯示oracle執行錯誤信息

--顯示oracle錯誤信息代碼
show sqlcode

--顯示【所有oracle錯誤信息】
show err[ors] 

--顯示【指定類型的對象】的【錯誤信息】
show err[ors]  { function | procedure | package | package body | trigger | view | type | type body | dimension | java class }   [schema.]name 

  

  顯示oracle回收站信息

--顯示【所有的】回收站信息
show recyc[lebin] 

--顯示 【指定的原始對象名】的回收站信息
show recyc[lebin] original_name

  

   startup:語法

startup [  [ force ] [ restrict ]  [ pfile=filename ] [ quiet ] [ { nomount | mount [dbname] | open  [ read { only | write [recover] } | recover ][dbname] } ]     ]

--force:強制關閉(abort模式)正運行的oracle數據庫實例,之后重啟。警告:危險的操作,生產環境慎用
--restrict:進入restrict session 權限的連接模式
--pfile:以指定的pfile啟動
  [filename]:替代默認的啟動spfile或缺省pfile
--quiet:啟動后,不顯示sga信息
[dbname]:替代初始化參數中的 DB_NAME 配置

   啟動:僅實例,nomount數據庫

startup nomount

   啟動:實例,mount數據庫

startup mount

   啟動:實例,read only只讀打開數據庫

startup open read only

   啟動:實例,read write 打開數據庫:即正常的打開方式

startup open read write
startup open

   啟動:實例,介質恢復模式打開:等價於:recover database 命令 + startup命令

startup open recover ????????????

 

  關閉:shutdown

--異常關閉:類似於斷電:(1)不征求客戶端同意,立即斷開連接;(2)啟動必須恢復
shutdown abort

--立即關閉:(1)立即斷開客戶端連接;(2)啟動無需恢復
shutdown immediate

--正常關閉:(1)等待客戶端主動斷開連接;(2)啟動無需恢復;(3)未完成事務回滾;
shutdown [ normal ]

--謹慎關閉:(1)等待客戶端主動斷開連接;(2)啟動無需恢復;(3)且等待事務完成;
shutdown transaction

  

  恢復:recover

  日志歸檔:archive log

  copy數據:copy

  修改當前用戶密碼:不指定用戶名,即為當前用戶

passw[ord]

  修改其他指定用戶密碼:指定用戶名

passw[ord] { username }

 

報表功能

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM