官术网_书友最值得收藏!

3.2 設(shè)置SQL*Plus的運(yùn)行環(huán)境

視頻講解:光盤\TM\lx\3\運(yùn)行環(huán)境.mp4

SQL*Plus的運(yùn)行環(huán)境是用來輸入、執(zhí)行SQL*Plus命令和顯示返回結(jié)果的場所,設(shè)置合適的SQL*Plus運(yùn)行環(huán)境,可以使SQL*Plus能夠按照用戶的要求運(yùn)行和執(zhí)行各種操作。SET命令也稱SET變量或維護(hù)系統(tǒng)變量,利用它可為SQL*Plus交互建立一個特殊的環(huán)境。例如,設(shè)置屏幕上每一行能夠最多顯示字符數(shù)、設(shè)置每頁打印的行數(shù)、設(shè)置某個列的寬度等。下面將對SET命令進(jìn)行詳細(xì)講解。

3.2.1 簡介SET命令

在Oracle 11g數(shù)據(jù)庫中,用戶可以使用SET命令來設(shè)置SQL*Plus的運(yùn)行環(huán)境,SET命令的語法格式為:

        SET system_variable  value

system_variable:變量名。

value:變量值。

SET命令的常用變量名、可選值及其說明如表3.1所示。

表3.1 SET命令的常用變量名、可選值及其說明

續(xù)表

比如,用戶可以設(shè)置在SQL*Plus命令提示符“SQL>”前面顯示當(dāng)前的系統(tǒng)時間。但需要注意的是,通過SET命令設(shè)置的環(huán)境變量是臨時的,不是永久的。當(dāng)用戶退出SQL*Plus環(huán)境后,用戶設(shè)置的環(huán)境參數(shù)會全部丟失。

【例3.1】 使用set time on命令設(shè)置在SQL*Plus命令提示符“SQL>”前面顯示當(dāng)前的系統(tǒng)時間,具體代碼如下。

        SQL> set time on
        10:27:06 SQL>

3.2.2 使用SET命令設(shè)置運(yùn)行環(huán)境

在對SET命令的功能及其若干常用變量選項了解之后,本節(jié)針對在Oracle操作過程中經(jīng)常用到的幾個變量選項及其實例應(yīng)用進(jìn)行詳細(xì)講解。

1.PAGESIZE變量

該變量用來設(shè)置從頂部標(biāo)題至頁結(jié)束之間的行數(shù),其語法格式如下:

        SET PAGESIZE value

value變量的默認(rèn)值為14,根據(jù)實際情況的需要,用戶可以修改value的值,該值是一個整數(shù)。

當(dāng)SQL*Plus返回查詢結(jié)果時,它首先會顯示用戶所選擇數(shù)據(jù)的列標(biāo)題,然后在相應(yīng)列標(biāo)題下顯示數(shù)據(jù)行,上下兩個列標(biāo)題所在行之間的空間就是SQL*Plus的一頁。一頁中所顯示的數(shù)據(jù)行的數(shù)量就是PAGESIZE變量的值。若要查看當(dāng)前SQL*Plus環(huán)境中的一頁有多少行,可以使用show pagesize命令。

【例3.2】 使用show pagesize命令顯示當(dāng)前SQL*Plus環(huán)境中的一頁有多少行,具體代碼如下。

        SQL> show pagesize
        pagesize 14

注意

不要把當(dāng)前窗口區(qū)域內(nèi)能夠顯示的行數(shù)看作SQL*Plus環(huán)境中一頁的行數(shù),一頁的行數(shù)由PAGESIZE變量值來決定。

如果默認(rèn)的14行不符合實際情況的需要,可以修改PAGESIZE變量的值。

【例3.3】 使用set pagesize命令修改一頁的行數(shù)為18,然后再使用新的pagesize值顯示數(shù)據(jù)行,具體代碼如下。(實例位置:光盤\TM\sl\3\1)

        SQL> set pagesize 18
        SQL> select user_id, username, account_status from dba_users;

本例運(yùn)行結(jié)果如圖3.1所示。

圖3.1 使用set pagesize命令修改行數(shù)

說明

一頁內(nèi)的數(shù)據(jù)行包括兩個列標(biāo)題之間的數(shù)據(jù)行、上面的一個列標(biāo)題、分隔線和空行。

2.NEWPAGE變量

該變量用來設(shè)置一頁中空行的數(shù)量,其語法格式如下:

        SET NEWPAGE value

value的默認(rèn)值為1,根據(jù)實際情況的需要,用戶可以修改value的值,該值是一個整數(shù)。

【例3.4】 首先顯示當(dāng)前SQL*Plus環(huán)境中的一頁有多少空行,然后使用set newpage命令修改空行的數(shù)量,并通過檢索數(shù)據(jù)記錄來觀察空行的改變,具體代碼如下(實例位置:光盤\TM\sl\3\2)

        SQL> show newpage
        newpage 5
        SQL> set newpage 1
        SQL> select user_id, username, account_status from dba_users;

本例運(yùn)行結(jié)果如圖3.2所示。

圖3.2 使用set newpage命令修改空行

3.LINESIZE變量

該變量用來設(shè)置在SQL*Plus環(huán)境中一行所顯示的最多字符總數(shù),其語法格式如下:

        SET LINESIZE value

value的默認(rèn)值為80,根據(jù)實際情況的需要,用戶可以修改value的值,該值是一個整數(shù)。

如果數(shù)據(jù)行的寬度大于LINESIZE變量的值,當(dāng)在SQL*Plus環(huán)境中按照LINESIZE指定的數(shù)量輸出字符時,數(shù)據(jù)就會發(fā)生折行顯示的情況。如果適當(dāng)調(diào)整LINESIZE的值,使其值等于或稍大于數(shù)據(jù)行的寬度,則輸出的數(shù)據(jù)就不會折行。所以在實際操作Oracle數(shù)據(jù)庫的過程中,要根據(jù)具體情況來適當(dāng)調(diào)整LINESIZE的值。

【例3.5】 首先使用show line命令顯示當(dāng)前SQL*Plus環(huán)境中一行可以顯示的最多字符數(shù)量,然后使用set linesize命令修改一行中可以顯示的最多字符數(shù)量為100,具體代碼如下。

        SQL> show line
        linesize 40
        SQL> set linesize 100

4.PAUSE變量

該變量用來設(shè)置SQL*Plus輸出結(jié)果是否滾動顯示,其語法格式如下:

        SET PAUSE value

value變量值有以下3種情況。

OFF:這是默認(rèn)值,返回結(jié)果一次性輸出完畢,中間的每一頁不會暫停。

ON:表示輸出結(jié)果的每一頁都暫停,用戶按Enter鍵后繼續(xù)顯示。

TEXT:在設(shè)置PAUSE的值為ON之后,若再設(shè)置TEXT的值,則每次暫停都將顯示該字符串。當(dāng)PAUSE的值為OFF時,設(shè)置TEXT值沒有任何意義。

當(dāng)在SQL*Plus環(huán)境中顯示多行數(shù)據(jù),并且一頁無法容納下這么多數(shù)據(jù)行時。如果PAUSE變量值為OFF,則SQL*Plus窗口輸出的數(shù)據(jù)行會快速滾動,非常不利于用戶查看。這就需要數(shù)據(jù)行在滾動時最好能夠按頁暫停,以便于用戶逐頁地查看輸出結(jié)果。當(dāng)把PAUSE變量的值設(shè)置為ON時,就可以實現(xiàn)控制SQL*Plus在顯示完一頁后暫停滾動,直到按Enter鍵后才繼續(xù)顯示下一頁。另外,在設(shè)置PAUSE變量值為ON之后,還可以通過PAUSE變量設(shè)置暫停后顯示的字符串,以便于提示用戶操作。

【例3.6】 使用set pause命令設(shè)置顯示結(jié)果按頁暫停,并在暫停后顯示“按<enter>鍵繼續(xù)”字符串,具體代碼如下(實例位置:光盤\TM\sl\3\3)

        SQL> set pause on
        SQL> set pause ’按<enter>鍵繼續(xù)’
        SQL> select user_id, username, account_status from dba_users;

本例運(yùn)行結(jié)果如圖3.3所示。

圖3.3 使用set pause命令設(shè)置顯示結(jié)果按頁暫停

說明

當(dāng)不再需要按頁暫停時,可以使用SET PAUSE OFF命令取消顯示結(jié)果的暫停功能,同時屏幕上不再有“提示字符串”輸出。

5.NUMFORMAT變量

該變量用來設(shè)置顯示數(shù)值的默認(rèn)格式,該格式是數(shù)值格式,其語法格式如下:

        SET NUMFORMAT format

format為數(shù)值的掩碼,數(shù)值的常用掩碼及其說明如表3.2所示。

表3.2 數(shù)值的常用掩碼及其說明

當(dāng)用戶查詢數(shù)據(jù)庫中的數(shù)值時,SQL*Plus環(huán)境將使用默認(rèn)的格式顯示數(shù)值,即以10個字符的寬度和常規(guī)格式來顯示數(shù)字。

【例3.7】 在SQL*Plus環(huán)境中,使用默認(rèn)的格式顯示scott.emp表中的雇員工資(即SAL字段的值),具體代碼如下。

        SQL> select ename, job, sal from scott.emp;

本例運(yùn)行結(jié)果如圖3.4所示。

圖3.4 顯示scott.emp表中的雇員工資

在上面的代碼中,SAL字段列出了雇員的工資,工資的格式為默認(rèn)格式。但在顯示和打印工資時,通常習(xí)慣性把金額顯示成帶有兩位小數(shù)的數(shù)值,并且為了便于閱讀大金額,還需要給金額加上逗號分隔符和貨幣種類符號。

【例3.8】 在SQL*Plus環(huán)境中,使用$999,999,999.00格式顯示scott.emp表中的雇員工資,具體代碼如下(實例位置:光盤\TM\sl\3\4)

        SQL> set numformat $999,999,999.00
        SQL> select ename, job, sal from scott.emp;

本例運(yùn)行結(jié)果如圖3.5所示。

圖3.5 格式化工資

主站蜘蛛池模板: 龙川县| 依兰县| 舒兰市| 竹山县| 会泽县| 江永县| 紫金县| 米易县| 五华县| 衡阳县| 新沂市| 泰安市| 宁晋县| 蓝田县| 微山县| 雅江县| 庆阳市| 福州市| 榆林市| 高平市| 通江县| 封丘县| 读书| 济南市| 读书| 云安县| 佛教| 杭锦旗| 淮北市| 怀集县| 柞水县| 图木舒克市| 汕头市| 甘泉县| 镇远县| 石阡县| 桐庐县| 巴彦淖尔市| 涿鹿县| 西吉县| 祁连县|