一、連接數據庫
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 }
報表功能