跟我一起學Oracle 11g【3】----SQL*Plus運用與OEM簡介


轉至: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 ] ]

column:列名
expr:有效的 SQL 表達式
option_1... option_n:可以是下列之一:
ALI[AS] alias   --給出列的別名,BREAK和COUMN可以引用所定義的別名。
CLE[AR] --取消列的定義。
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format  --重要 顯示如下:
HEA[DING] text  --Heading 重新標記列的顯示標題
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE {expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
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 變為  123400
DATE        采用日期數字格式( MM/DD/YY

如圖所示:

3.設置頁面大小

語法格式:

set pagesize 頁數-----設置頁數

4.設置行的大小

語法格式:

set linesize 行數----設置行數

5.使用變量

在我們使用sql*plus的時候,我們有的時候需要定義變量,以便在實際運行的時候代替實際值的使用。

變量分2種:

臨時變量:只在使用它的SQL語句中有效。

已定義變量(全局變量)一直保留到SQL*Plus退出為止。

5.1臨時變量

在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次,為了避免重復輸入相同的變量,可以使用&&代替!~如圖,

5.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:是否隱藏,比如你要輸入密碼,那么你需要輸入這個,防止偷窺狂!。

如圖所示:

5.3刪除定義的變量

undefine 變量名

5.4在腳本中使用臨時變量

在SQL*Plus腳本中,可以使用變量來創建可以運行的腳本,這樣當其它的用戶使用這個腳本的時候,不需要了解SQL語句的知識,只需要輸入變量的值就可以運行在腳本!

現在在我的F盤下面新建一個myFirst.sql,輸入下面命令語句:

select * from dept
where deptno=&my_deptno

然后 在我們的SQL*Plus中運行如下:

注意:如果你建立的文件有空格的話,那么你需要把@后面的路徑用引號給引起來。

使用accept也和上面一樣。。不在演示了。

5.5向腳本的變量傳遞值

在運行腳本的時候,可以向變量傳遞值,但必須使用一個數字來引用腳本中的變量

把上面的腳本命令改成下面形式:

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的世界里,還有很多很多的東西值得你去發現。不過,我還是建議初學者不去用這個,別太依賴這個東東,初學的時候 動手敲敲 還是有好處滴!~~~

好晚了!~~

安!~

作者:Lanny☆蘭東才
出處:http://www.cnblogs.com/damonlan 
Q Q:*********
E_mail:Damon_lan@163.com or Dongcai.lan@hp.com

本博文歡迎大家瀏覽和轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,在『參考』的文章中,我會表明參考的文章來源,尊重他人版權。若您發現我侵犯了您的版權,請及時與我聯系。


免責聲明!

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



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