轉至:http://www.cnblogs.com/damonlan/archive/2012/07/18/2592616.html
前言
在第二篇的時候,為了不偏離用戶管理的主題,所以對SQL*Plus的一些很常用的命令沒有說清楚,在這里在補充一下咯!因為這些命令對我們平時在SQL*Plus下操作很重要,都是一些重復率很高的運用,掌握了這些,可以讓你操作數據庫事半功倍的效果哦!~
信不信由你,反正我是信了!~~
對了,前面有些童鞋說,文章太長了,這個真的沒有辦法短的呀~~因為我想一篇就一個主題嘛,想給點圖,然后配合一些理論!~如果分的太細的話,就太多章節了!~見諒咯。
哇~~整理完格式 1點半了!~~趕忙睡覺去了!~~
各位晚安咯!!
---------------------本期目錄導航------------------
一。SQL*Plus命令回顧
1.保存、檢索並運行文件
2.命令格式化
3.設置頁面大小
4.設置行的大小
5.使用變量
5.1臨時變量
5.2已定義變量
5.3刪除定義的變量
5.4在腳本中使用臨時變量
5.5向腳本的變量傳遞值
6. Break on和Compute的使用
二。Oracle 中OEM的配置
一。SQL*Plus 命令回顧
1.SQL*Plus腳本運用
SQL*Plus可以保存、檢索、運行包含SQL*Plus命令和SQL語句的腳本
命令 | 說明 |
SAVEfilename | 講SQL*Plus緩沖區中的內容保存到filename指定的地方。 |
GET filename | 把filename文件的內容讀入到緩沖區中,只顯示語句。不執行。 |
STARTfilename | 執行讀入緩沖區的語句。 |
@ filename | 同START |
EDIT | 將緩沖區中的內容復制到一個名為afiedt.buf的文件中,可以進行編輯。 |
如圖:
2.命令格式化
命令如下:
COL[UMN] [{ column | expr } [ option_1 ... option_n ] ]
FORMAT 列顯示格式, format 為:9999990 9 或 0 的個數決定最多顯示多少位9,999,999.99 按照逗號和小數點來 顯示數據,若是 0 以空格顯示099999 顯示前面補 0$999,999.99 數字前加美圓號B99999 若為 0 ,則結果為空白99999Mi 若數字為負,則負號放在數字后(右邊),缺省放在左邊99999PR 負號將以括號括起9.999EEEE 以科學記數法表示(必須有 4 個 E )999V99 數字乘以 10n , 如 1234 變為 123400DATE 采用日期數字格式( MM/DD/YY )
如圖所示:
3.設置頁面大小
語法格式:
set pagesize 頁數-----設置頁數
4.設置行的大小
語法格式:
set linesize 行數----設置行數
5.使用變量
在我們使用sql*plus的時候,我們有的時候需要定義變量,以便在實際運行的時候代替實際值的使用。
變量分2種:
臨時變量:只在使用它的SQL語句中有效。
已定義變量(全局變量):一直保留到SQL*Plus退出為止。
在SQL語句中用&定義臨時變量(當然可以自己定義一個變量,下面有介紹),后面跟着變量名。運行下面的語句,SQL*Plus會提示用戶為v_deptno變量輸入一個值,然后再執行。
如圖所示:
控制行的輸出
如果我是一個很簡約的人,我不喜歡上面圖中的old和new這2行呢?Oracle可以滿足你的要求,只需要輸入下面的命令:
set verify off|on -----如果set verify off 就會禁止顯示原值和新值的顯示,就直接輸入值就可以了。on是重新打開。
比如:
自定義臨時變量字符
我們知道,如果我們如果想定義一個臨時變量可以用"&",其實我們也可以自己自定義臨時變量字符!~
語法命令:
set define 字符----定義自定義臨時變量字符
如果還原默認的,很簡單,只需要set define "&" 就OK了。其實,我覺得這個只是語法糖。實際效果不大。
使用臨時變量替換表名
臨時變量還可以替換表名,其實 sql語句中的 變量都可以被臨時變量替換!
上面的&myDeptno輸入了2次,為了避免重復輸入相同的變量,可以使用&&代替!~如圖,
上面的變量是臨時變量,使用過后就會被Oracle銷毀了!其實,還有另外一個辦法,我們可以定義一個在類似全局變量的變量。
使用Define命令定義變量
Define可以用來定義變量,也可以用來查看變量。
使用Accept命令定義變量
上面的define 是需要把值寫死在命令中,這樣很不靈活。可喜的是,Oracle中還有一個Accept命令,可是等待用戶為變量輸入一個值。
ACCEPT 變量名 [type] [ FORMAT format] [FORMAT prompt] [HIDE]
type:給變量分配的類型,比如number、varchar2等等
format:指定變量的格式。比如A15:15個空格;9999:4位數字;DD-MON-YYYY:日期等等。
prompt:提示字符
HIDE:是否隱藏,比如你要輸入密碼,那么你需要輸入這個,防止偷窺狂!。
如圖所示:
undefine 變量名
在SQL*Plus腳本中,可以使用變量來創建可以運行的腳本,這樣當其它的用戶使用這個腳本的時候,不需要了解SQL語句的知識,只需要輸入變量的值就可以運行在腳本!
現在在我的F盤下面新建一個myFirst.sql,輸入下面命令語句:
select * from dept where deptno=&my_deptno
然后 在我們的SQL*Plus中運行如下:
注意:如果你建立的文件有空格的話,那么你需要把@后面的路徑用引號給引起來。
使用accept也和上面一樣。。不在演示了。
在運行腳本的時候,可以向變量傳遞值,但必須使用一個數字來引用腳本中的變量。
把上面的腳本命令改成下面形式:
select * from dept where deptno>=&1
然后再調用:
6. Break on和Compute的使用
Break on:字句可以讓SQL*Plus根據列值的范圍分割輸出結果;
Compute:計算列的值。
在本地腳本輸入以下命令
break on deptno compute sum of sal on deptno set verify off //用來禁止顯示驗證信息 set echo off //禁止SQL*Plus顯示腳本中的SQL語句和命令 set pagesize 50 set linesize 70 clear columns column deptno heading '部門號' format 99 column ename heading '雇員名' format A20 column sal heading '工資' format $99999.99 select deptno,ename,sal from emp order by deptno; clear columns
得到結果如下:
二。Oracle 中OEM的配置
打開 OEM
這個前幾天着實讓我郁悶了一把,我怎么都開啟不了!~。后來我突然想到,我在那天用360優化了電腦,把一個服務給關了,所以就啟動不了OEM這個了,先讓大家看一下,下次注意下:
先來看一下什么是百科里的一段OEM的介紹:
企業管理器簡稱OEM (Oracle Enterprise Manager)
OEM是一個圖形化的數據庫管理員工具。它為數據庫管理員提供了一個集中的系統管理工具,同時 它也是一個用來管理、診斷和調試多個數據庫的工具,一個用來管理來自多個地點的多個網絡節點和服務的工具。該工具可以使不同的數據庫管理員之間共享一些工 作,另外它還提供了一些管理並行服務器和分布式數據庫的工具。總之,OEM是一個功能強大且操作簡單的圖形化數據庫管理員工具。
很好理解,比如我們建表、表空間等等,我們平時都在上面的命令行創建(當然這里還沒說到PL/SQL Developer),這樣其實很不方便,所以你就可以進入到OEM中,進行圖形化操作。很easy哦。
圖1 打開OEM
圖2. 登錄界面
圖3.主目錄
OK,我們來看看我們會在平時用的比較多的地方吧!!~~就是那個服務器目錄。這里我們可以在這里添加表空間、用戶、數據庫等等。應該來說,在命令里可以完成的任務 在這里應該基本可以完成(這句話還有待證明。。。。!~)如圖:
我們點擊“安全性”下面的“用戶”,然后再點擊“創建”,OK 我們可以打開新建用戶界面,我們填上用戶名:HelloWorld
點右下角“確定”就OK了,創建了一個用戶!~~~然后 在SQL*Plus里看看~
在OEM的世界里,還有很多很多的東西值得你去發現。不過,我還是建議初學者不去用這個,別太依賴這個東東,初學的時候 動手敲敲 還是有好處滴!~~~
好晚了!~~
安!~
啊
出處:http://www.cnblogs.com/damonlan
Q Q:*********
E_mail:Damon_lan@163.com or Dongcai.lan@hp.com
本博文歡迎大家瀏覽和轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,在『參考』的文章中,我會表明參考的文章來源,尊重他人版權。若您發現我侵犯了您的版權,請及時與我聯系。