Oracle中SQL*plus常用命令詳解
1 SQL*plus工具
在 Oracle 11g 數(shù)據(jù)庫系統(tǒng)中,用戶對(duì)數(shù)據(jù)庫的操作主要是通過 SQL*Plus 來完成的。 SQL*Plus 作為 Oracle 的客戶端工具,既可以建立位于數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)連接,也可以建立位于網(wǎng)絡(luò)中的數(shù)據(jù)連接。下面將介紹如何啟動(dòng) SQL*Plus 和如何使用 SQL*Plus 連接到數(shù)據(jù)庫。
1.1 oracle自帶的工具
選擇“開始” /“所有程序” /Oracle-OraDb11g_home1/“應(yīng)用程序開發(fā)” /SQL*Plus ,打開如圖 所示的 SQL*Plus 啟動(dòng)界面

在命令提示符的位置輸入登錄用戶(如 SYSTEM 或 SYS 等系統(tǒng)管理賬戶)和口令(口令是在安裝或創(chuàng)建數(shù)據(jù)庫時(shí)指定的), 若輸入的用戶名和口令正確, 則 SQL*Plus 將連接到數(shù)據(jù)庫, 如圖所示。需要特殊身份的as sysdba或者sysoper,否則就是普通的用戶,就什么也不用添加

1.2 cmd命令
還可以通過在“運(yùn)行”中輸入 cmd 命令來啟動(dòng)命令行窗口,然后在該窗口輸入 SQL*Plus命令來連接數(shù)據(jù)庫。使用 SQL*Plus 命令連接數(shù)據(jù)庫實(shí)例的語法格式如下:
SQLPLUS username[/password][@connect_identifier] [AS SYSOPER|SYSDBA]
- username:表示登錄用戶名。
- password:表示登錄口令。
- @connect_identifier:表示連接的全局?jǐn)?shù)據(jù)庫名,若連接本機(jī)上的默認(rèn)數(shù)據(jù)庫,則可以省略。
在輸入 Oracle 數(shù)據(jù)庫命令時(shí),其關(guān)鍵字不區(qū)分大小寫(比如,輸入 sqlplus 或 SQLPLUS 都可以),但參數(shù)區(qū)分大小寫。
1.3 修改sys密碼
oracle初始密碼有人說是沒有密碼或者密碼是 任何字母+as+sysdba,可以通過在dos窗口里面使用命令sqlplus /nolog登錄,然后用conn /as sysdba嘗試下,反正結(jié)果都不順利,那就用如下命令
orapwd file=D:\SoftWare\SQL\Oracle\product\11.1.0\db_1\database\PWDorcl.ora password=你設(shè)定的新密碼;
可能報(bào)錯(cuò):
- OPW-00005: 存在同名文件 - 請(qǐng)刪除或重命名。只需要把已經(jīng)存在的PWDorcl.ora刪除掉,或者用新名字PWDorcl123.ora
- OPW-00001: 無法打開口令文件。win環(huán)境需要用管理員啟動(dòng)dos窗口執(zhí)行上述命令就可以成功修改sys密碼
或者用命令修改:
alter user sys identified by 新密碼;
在使用sqlplus命令用sys用戶登錄oracle時(shí),需要 添加sysdba,比如:sys as sysdba ,然后在輸入上面重新修改的密碼就可以了,但是登錄system就不用添加了,這是sys和system用戶不一樣導(dǎo)致
sys和system用戶的區(qū)別:
system:用戶具有DBA權(quán)限,但是沒有SYSDBA權(quán)限,用戶只能用normal身份登陸。system是數(shù)據(jù)庫內(nèi)置的一個(gè)普通管理員,手工創(chuàng)建的任何用戶在被授予dba角色后都跟這個(gè)用戶差不多。
sys:用戶具有“SYSDBA”或者“SYSOPER”權(quán)限,登陸也只能用這兩個(gè)身份,不能用normal。SYS用戶具有DBA權(quán)限,并具有SYS模式。只能通過SYSDBA登錄數(shù)據(jù)庫,是Oracle數(shù)據(jù)庫中權(quán)限最高的帳號(hào)
2 SET 命令概述
在 Oracle 11g 數(shù)據(jù)庫中,用戶可以使用 SET 命令來設(shè)置 SQL*Plus 的運(yùn)行環(huán)境, SET 命令的語法格式為:
SET system_variable value
- system_variable:變量名。
- value:變量值。
- SET 命令的常用變量名、可選值及其說明下圖所示。
| 變 量 名 | 變量可選值 | 說 明 |
| ARRAY[SIZE] | 20(默認(rèn)值) |n | 設(shè)置查詢的行數(shù),是 SQL*Plus 一次從數(shù)據(jù)庫獲取的行數(shù),有 效值為 1 至 5000。大的值可提高查詢和子查詢的有效性,可獲取 許多行,但也需要更多的內(nèi)存。當(dāng)超過 1000 時(shí),其效果不大 |
| AUTO[COMMIT] | OFF(默認(rèn)值) |ON| IMMEDIATE | 控制 Oracle 對(duì)數(shù)據(jù)庫的修改的提交。設(shè)置為 ON 時(shí),在 Oracle 執(zhí)行每個(gè) SQL 命令或 PL/SQL 塊后對(duì)數(shù)據(jù)庫自動(dòng)提交修改;設(shè) 置為 OFF 時(shí),則制止自動(dòng)提交,需要手工地提交修改(即需要 執(zhí)行 COMMIT 命令); IMMEDIATE 功能同 ON |
| BLO[CKTERMINATOR] | .(默認(rèn)值) |C | 設(shè)置非字母數(shù)字字符,用于結(jié)束 PL/SQL 塊。要執(zhí)行塊時(shí),必 須發(fā)出 RUN 命令或/命令 |
| CMDS[EP] | ;|C|OFF(默認(rèn)值) |ON | 設(shè)置非字母數(shù)字字符, 用于分隔在一行中輸入的多個(gè) SQL*Plus 命令, ON 或 OFF 控制在一行中是否能輸入多個(gè)命令。 ON 時(shí) 將自動(dòng)地將命令分隔符設(shè)為分號(hào)(;),其中 C 表示所置字符 |
| ECHO | OFF|ON | 控制 START 命令是否列出命令文件中的每一命令,若設(shè)置為 ON 時(shí),則列出命令;若為 OFF,則制止列清單 |
| FLU[SH] | OFF|ON(默認(rèn)值) | 控制輸出送至用戶的顯示設(shè)備。設(shè)置為 OFF 時(shí),運(yùn)行操作系統(tǒng) 做緩沖區(qū)輸出;設(shè)置為 ON 時(shí),不允許緩沖。僅當(dāng)非交互方式 運(yùn)行命令文件時(shí)使用 OFF,這樣可減少程序 I/O 總數(shù),從而改 進(jìn)性能 |
| HEA[DING] | OFF|ON(默認(rèn)值) | 控制報(bào)表中列標(biāo)題的打印。設(shè)置為 ON 時(shí),在報(bào)表中打印列標(biāo) 題;為 OFF 時(shí)禁止打印列標(biāo)題 |
| LIN[ESIZE] | 80(默認(rèn)值) |n | 設(shè)置 SQL*Plus 在一行中顯示的最多字符總數(shù),它還控制在 TTITLE 和 BTITLE 中對(duì)準(zhǔn)中心的文本和右對(duì)齊文本??啥x LINESIZE 為 1 至最大值,其最大值依賴于操作系統(tǒng) |
| NEWP[AGE] | 1(默認(rèn)值) |n | 設(shè)置一頁中空行的數(shù)量 |
| NULL | text | 設(shè)置表示空值(NULL)的文本,如果 NULL 沒有文本,則顯 示空格(默認(rèn)時(shí))。使用 COLUMN 命令中的 NULL 子句可控 制 NULL 變量對(duì)該列的設(shè)置 |
| NUMF[ORMAT] | 格式 | 設(shè)置顯示數(shù)值的默認(rèn)格式,該格式是數(shù)值格式 |
| PAGES[IZE] | 14(默認(rèn)值) |n | 設(shè)置從頂部標(biāo)題至頁結(jié)束之間的行數(shù) |
| PAU[SE] | OFF(默認(rèn)值) |ON|TEXT | 設(shè)置 SQL*Plus 輸出結(jié)果是否滾動(dòng)顯示。當(dāng)設(shè)置為 ON 時(shí),表示 輸出結(jié)果的每一頁都暫停,用戶按 Enter 鍵后繼續(xù)顯示。在設(shè)置 PAUSE 的值為 ON 之后,若再設(shè)置字符串時(shí)——設(shè)置 TEXT 的 值,則每次暫停都將顯示該字符串 |
| RECSEP | WR[APPED] (默認(rèn)值)|EA [CH]|OFF | 指定顯示或打印記錄分行符的條件。一個(gè)記錄分行符是由 RECSEPCHAR 指定的字符組成的單行,空格為 RECSEPCHAR 的默認(rèn)字符 |
| SERVEROUT[PUT] | OFF|ON [SIZE n] | 控制在 SQL*Plus 中的存儲(chǔ)過程是否顯示輸出。若設(shè)置為 OFF, 則禁止;若設(shè)置為 ON,則顯示輸出。 SIZE 設(shè)置緩沖輸出的字節(jié) 數(shù),缺省值為 2000, n 不能小于 2000 或大于 100 萬 |
| SHOW[MODE] | OFF(默認(rèn)值) |ON | 控制 SQL*Plus 在執(zhí)行 SET 命令時(shí)是否列出其新老值 old 或 new 的設(shè)置。其中, ON 值表示列出新老值 |
| SPA[CE] | 1(默認(rèn)值) |n | 設(shè)置輸出列之間空格的數(shù)目,其最大值為 10 |
| SQLCO[NTINUE] | >;(默認(rèn)值) |文本 | 在一附加行上繼續(xù)某個(gè) SQL*Plus 命令時(shí), SQL*Plus 以該設(shè)置的 字符序列進(jìn)行提示 |
| SQLN[UMBER] | OFF|ON(默認(rèn)值) | 為 SQL 命令和 PL/SQL 塊的第二行和后繼行設(shè)置提示。若為 ON, 則提示行號(hào);若為 OFF,則提示設(shè)置為 SQLPROMPT 的值 |
| TI[ME] | OFF(默認(rèn)值) |ON | 控制當(dāng)前日期的顯示。若為 ON,則在每條命令提示前顯示當(dāng)前 時(shí)間;若為 OFF,則禁止時(shí)間的顯示 |
| TIMI[NG] | OFF(默認(rèn)值) |ON | 控制時(shí)間統(tǒng)計(jì)的顯示。若為 ON,則顯示每一個(gè)運(yùn)行的 SQL 命令 或 PL/SQL 塊的時(shí)間統(tǒng)計(jì);若為 OFF,則禁止每一個(gè)命令的時(shí)間 統(tǒng)計(jì) |
| UND[ERLINE] | (默認(rèn)值) - |C|OFF|ON(默 認(rèn)值) | 設(shè)置用在 SQL*Plus 報(bào)表中下劃線列標(biāo)題的字符。 ON 或 OFF 將 下劃線置成開或關(guān)狀態(tài) |
| VER[IFY] | OFF|ON(默認(rèn)值) | 控制 SQL*Plus 用值替換前、后是否列出命令的文本。若為 ON, 則顯示文本;若為 OFF,則禁止列清單 |
| WRA[P] | OFF|ON(默認(rèn)值) | 控制 SQL*Plus 是否截?cái)鄶?shù)據(jù)項(xiàng)的顯示。若為 OFF,則截?cái)鄶?shù)據(jù) 項(xiàng);若為 ON,則允許數(shù)據(jù)項(xiàng)纏繞到下一行 |
用戶可以設(shè)置在 SQL*Plus 命令提示符“SQL>”前面顯示當(dāng)前的系統(tǒng)時(shí)間。但需要注意的是:通過 SET 命令設(shè)置的環(huán)境變量是臨時(shí)的,不是永久的。當(dāng)用戶退出 SQL*Plus 環(huán)境后,用戶設(shè)置的環(huán)境參數(shù)會(huì)全部丟失。
使用“set time on”命令設(shè)置在 SQL*Plus 命令提示符“SQL>”前面顯示當(dāng)前的系統(tǒng)時(shí)間,具體代碼如下。
SQL> set time on 10:27:06 SQL>
2.1 使用 SET 命令設(shè)置運(yùn)行環(huán)境
在對(duì) SET 命令的功能及其若干常用變量選項(xiàng)了解之后,以下經(jīng)常用到的幾個(gè)變量選項(xiàng)及其實(shí)例應(yīng)用進(jìn)行詳細(xì)講解。
2.1.1 PAGESIZE 變量
該變量用來設(shè)置從頂部標(biāo)題至頁結(jié)束之間的行數(shù),其語法格式如下:
SET PAGESIZE value
value 變量的默認(rèn)值為 14,根據(jù)實(shí)際情況的需要,用戶可以修改 value 的值,該值是一個(gè)正整數(shù)。當(dāng) SQL*Plus 返回查詢結(jié)果時(shí),它首先會(huì)顯示用戶所選擇數(shù)據(jù)的列標(biāo)題,然后在相應(yīng)列標(biāo)題下顯示數(shù)據(jù)行,上下兩個(gè)列標(biāo)題所在行之間的空間就是 SQL*Plus 的一頁。一頁中所顯示的數(shù)據(jù)行的數(shù)量就是PAGESIZE 變量的值。若要查看當(dāng)前 SQL*Plus 環(huán)境中的一頁有多少行,可以使用 show pagesize 命令。
SQL> show pagesize pagesize 14
不要把當(dāng)前窗口區(qū)域內(nèi)能夠顯示的行數(shù)看做 SQL*Plus 環(huán)境中一頁的行數(shù),一頁的行數(shù)由PAGESIZE 變量值來決定。如果默認(rèn)的 14 行不符合實(shí)際情況的需要,可以修改 PAGESIZE 變量的值。
使用 set pagesize 命令修改一頁的行數(shù)為 18,然后再使用新的 pagesize 值顯示數(shù)據(jù)行,具體代碼如下。
SQL> set pagesize 18 SQL> select user_id,username,account_status from dba_users;
2.1.2 NEWPAGE 變量
該變量用來設(shè)置一頁中空行的數(shù)量,其語法格式如下:
SET NEWPAGE value
value 的默認(rèn)值為 1,根據(jù)實(shí)際情況的需要,用戶可以修改 value 的值,該值是一個(gè)正整數(shù)
2.1.3 LINESIZE 變量
該變量用來設(shè)置在 SQL*Plus 環(huán)境中一行所顯示的最多字符總數(shù),其語法格式如下:
SET LINESIZE value
value 的默認(rèn)值為 80,根據(jù)實(shí)際情況的需要,用戶可以修改 value 的值,該值是一個(gè)正整數(shù)。如果數(shù)據(jù)行的寬度大于 LINESIZE 變量的值,當(dāng)在 SQL*Plus 環(huán)境中按照 LINESIZE 指定的數(shù)量輸出字符時(shí),數(shù)據(jù)就會(huì)發(fā)生折行顯示的情況。如果適當(dāng)調(diào)整 LINESIZE 的值,使其值等于或稍大于數(shù)據(jù)行的寬度,則輸出的數(shù)據(jù)就不會(huì)折行。所以在實(shí)際操作 Oracle 數(shù)據(jù)庫的過程中,要根據(jù)具體情況來適當(dāng)調(diào)整 LINESIZE 的值。
2.1.4 PAUSE 變量
該變量用來設(shè)置 SQL*Plus 輸出結(jié)果是否滾動(dòng)顯示,其語法格式如下:
SET PAUSE value
value 變量值有以下 3 種情況:
OFF:這是默認(rèn)值,返回結(jié)果一次性輸出完畢,中間的每一頁不會(huì)暫停。
ON:表示輸出結(jié)果的每一頁都暫停,用戶按 Enter 鍵后繼續(xù)顯示。
TEXT:在設(shè)置 PAUSE 的值為 ON 之后,若再設(shè)置 TEXT 的值,則每次暫停都將顯示該字符串。當(dāng) PAUSE 的值為 OFF 時(shí),設(shè)置TEXT 值沒有任何意義。
當(dāng)在 SQL*Plus 環(huán)境中顯示多行數(shù)據(jù),并且一頁無法容納下這么多數(shù)據(jù)行時(shí),如果 PAUSE 變量值為 OFF,則 SQL*Plus 窗口輸出的數(shù)據(jù)行會(huì)快速滾動(dòng),非常不利于用戶查看。這就需要數(shù)據(jù)行在滾動(dòng)時(shí)最好能夠按頁暫停,以便于用戶逐頁地查看輸出結(jié)果。當(dāng)把 PAUSE 變量的值設(shè)置為 ON 時(shí),就可以實(shí)現(xiàn)控制 SQL*Plus 在顯示完一頁后暫停滾動(dòng),直到按 Enter 鍵后才繼續(xù)顯示下一頁。另外, 在設(shè)置 PAUSE
變量值為 ON 之后,還可以通過 PAUSE 變量設(shè)置暫停后顯示的字符串,以便于提示用戶操作。
SQL> set pause on SQL> set pause '按<enter>鍵繼續(xù)' SQL> select user_id,username,account_status from dba_users;
2.1.5 NUMFORMAT 變量
該變量用來設(shè)置顯示數(shù)值的默認(rèn)格式,該格式是數(shù)值格式,其語法格式如下:
SET NUMFORMAT format
format 為數(shù)值的掩碼,數(shù)值的常用掩碼及其說明如表
| 掩 碼 | 說 明 | 舉 例 |
| 9 | 查詢結(jié)果中數(shù)字替換格式中的掩碼(不會(huì)占用空格) | 999 |
| 0 | 格式中的掩碼屏蔽掉查詢結(jié)果中的數(shù)字(但是會(huì)占用空格位) | 999.00 |
| $ | 在查詢結(jié)果中的數(shù)字前添加美元前綴 | $999 |
| S | 為數(shù)字顯示符號(hào)類型,通常用于顯示查詢結(jié)果中的正負(fù)數(shù)字 | S999 |
| , | 在字符“,”位置上放置逗號(hào) | 999,99 |
3 SQL*plus的常用命令
3.1 HELP 命令
SQL*Plus 工具提供了許多操作 Oracle 數(shù)據(jù)庫的命令,并且每個(gè)命令都有很多選項(xiàng),把所有命令的選項(xiàng)都記住,這對(duì)于用戶來說非常困難。為了解決這個(gè)難題, SQL*Plus 提供了 HELP 命令來幫助用戶查詢指定命令的選項(xiàng)。 HELP 可以向用戶提供被查詢命令的標(biāo)題、功能描述、縮寫形式和參數(shù)選項(xiàng)(包括必選參數(shù)和可選參數(shù))等信息。 HELP 命令的語法形式如下:
HELP|? [topic]
- “?”表示一個(gè)命令的部分字符,這樣就可以通過提供命令的部分字符以模糊查詢的方式來查詢命令格式;topic 參數(shù)表示將要查詢的命令的完整名稱。若省略“?”和“topic”參數(shù),直接執(zhí)行 HELP命令,則會(huì)輸出 HELP 命令本身的語法格式及其功能描述信息。
- 使用 help index 命令來查看 SQL*Plus 命令清單,具體代碼如下
SQL> help index

3.2 DESCRIBE 命令
在 SQL*Plus 的眾多命令中, DESCRIBE 命令可能是被使用得最頻繁的一個(gè),它用來查詢指定數(shù)據(jù)對(duì)象的組成結(jié)構(gòu)。比如,通過 DESCRIBE 命令查詢表和視圖的結(jié)構(gòu),查詢結(jié)果就可以列出其各個(gè)列的名稱、是否為空及類型等屬性。 DESCRIBE 命令的語法形式如下:
desc[ribe] object_name;
describe 可以縮寫為 desc, object_name 表示將要查詢的對(duì)象名稱。
DESCRIBE 命令不僅可以查詢表、視圖的結(jié)構(gòu),而且還可以查詢過程、函數(shù)和程序包等PL/SQL 對(duì)象的規(guī)范
3.3 SPOOL 命令
SPOOL 命令可以把查詢結(jié)果輸出到指定文件中,這樣可以保存查詢結(jié)果并方便打印。
SPOOL 命令的語法格式如下:
desc[ribe] object_name;
參數(shù) file_name 用于指定脫機(jī)文件的名稱,默認(rèn)的文件擴(kuò)展名為 LST。在該參數(shù)后面可以跟一個(gè)關(guān)鍵字,該關(guān)鍵字有以下幾種情況:
- CRE[ATE]:表示創(chuàng)建一個(gè)新的脫機(jī)文件,這也是 SPOOL 命令的默認(rèn)狀態(tài)。
- REP[LACE]:表示替代已經(jīng)存在的脫機(jī)文件。
- APP[END]:表示把脫機(jī)內(nèi)容附加到一個(gè)已經(jīng)存在的脫機(jī)文件中。
- OFF | OUT:表示關(guān)閉 SPOOL 輸出

注意:只有使用 spool off 或 spool out 命令關(guān)閉輸出,才會(huì)在輸出文件中看到輸出的內(nèi)容,否則輸出文件中無內(nèi)容或無更新內(nèi)容。
3.4 DEFINE 命令
該命令用來定義一個(gè)用戶變量并且可以分配給它一個(gè) CHAR 值,其語法格式如下:
DEF[INE] [variable] | [variable = text]
- variable:表示定義的變量名。
- text:變量的 CHAR 值
例子如下:
SQL> def a =qwe; SQL> def a; DEFINE a = "qwe" (CHAR)
3.5 SHOW 命令
該命令用來顯示 SQL*Plus 系統(tǒng)變量的值或 SQL*Plus 環(huán)境變量的值,其語法格式如下:
SHO[W] option
option 表示要顯示的系統(tǒng)選項(xiàng),常用的選項(xiàng)有 ALL、 PARAMETERS [parameter_name]、 SGA、SPOOL、 USER 等
3.6 EDIT 命令
SQL 語句或 PL/SQL 塊在執(zhí)行完畢之后,可以被存儲(chǔ)在一個(gè)被稱為 SQL 緩沖區(qū)的內(nèi)存區(qū)域中,用戶可以從 SQL 緩沖區(qū)中重新調(diào)用、編輯或運(yùn)行那些最近輸入的 SQL 語句。若要編輯 SQL 緩沖區(qū)中的最近一條 SQL 語句或 PL/SQL 塊,即可以在 SQL*Plus 環(huán)境中直接編輯,也可以使用 EDIT 命令實(shí)現(xiàn)在記事本中編輯。 EDIT 命令用來編輯 SQL 緩沖區(qū)或指定磁盤文件中的 SQL 語句或 PL/SQL 塊,其語法
格式如下:
ED[IT] [file_name[.ext]]
參數(shù) file_name 表示要編輯的磁盤文件名。若在 SQL*Plus 中只輸入“EDIT”命令,而不指定 file_name參數(shù)的值,則表示編輯 SQL 緩沖區(qū)中的最近一條 SQL 語句或 PL/SQL 塊。
執(zhí)行 EDIT 命令后, SQL*Plus 工具將打開一個(gè)包含有 SQL 語句或 PL/SQL 塊的記事本,用戶就可以在記事本環(huán)境下編輯 SQL 語句或 PL/SQL 塊。
注意:如果要執(zhí)行 SQL 緩沖區(qū)中最近一條 SQL 語句,可以使用運(yùn)行命令“ /”來執(zhí)行,這樣可以簡化操作
3.7 SAVE 命令
該命令實(shí)現(xiàn)將 SQL緩沖區(qū)中的最近一條 SQL語句或 PL/SQL塊保存到一個(gè)文件中,其語法格式如下:
SAVE file_name
參數(shù) file_name 表示要保存的文件名,如果不為保存的文件指定路徑,則該文件會(huì)保存在 Oracle系統(tǒng)安裝的主目錄中(但不建議這樣做)。如果不為保存的文件指定擴(kuò)展名,則默認(rèn)擴(kuò)展名為“.sql”,即保存的文件為一個(gè) SQL 腳本文件。
如果要清空 SQL 緩沖區(qū)中的內(nèi)容,可以使用 clear buffer 命令
3.8 GET 命令
該命令實(shí)現(xiàn)把一個(gè) SQL 腳本文件的內(nèi)容放進(jìn) SQL 緩沖區(qū),其語法格式如下:
GET [FILE] file_name[.ext] [LIST | NOLIST]
- file_name:要檢索的文件名,如果省略了文件的擴(kuò)展名,則默認(rèn)文件的擴(kuò)展名為“.sql”。
- LIST:指定文件的內(nèi)容加載到緩沖區(qū)時(shí)顯示文件的內(nèi)容。
- NOLIST:指定文件的內(nèi)容加載到緩沖區(qū)時(shí)不顯示文件的內(nèi)容。
執(zhí)行 GET 命令時(shí),如果 file_name 參數(shù)不包括被檢索文件的路徑,則 SQL*Plus 工具會(huì)在 Oracle系統(tǒng)安裝的主目錄下檢索指定文件。在 SQL*Plus 找到指定文件后, 會(huì)把文件中的內(nèi)容加載到 SQL*Plus緩沖區(qū),并顯示該文件的內(nèi)容。
3.9 START 和@命令
這兩個(gè)命令都可以用來執(zhí)行一個(gè) SQL 腳本文件,它們的語法格式如下:
STA[RT] {url|file_name[.ext]} [arg ...]
@ {url|file_name[.ext]} [arg ...]- url:表示要執(zhí)行的 SQL 腳本文件的路徑。
- file_name:表示包含 SQL 腳本的文件名。
- arg:其他參數(shù)。
4 格式化查詢結(jié)果
4.1 COLUMN 命令
該命令可以實(shí)現(xiàn)格式化查詢結(jié)果、設(shè)置列寬度、重新設(shè)置列標(biāo)題等功能。其語法格式如下:
COL[UMN] [column_name | alias | option] COL[UMN] [column_name | alias | option]
- column_name:用于指定要設(shè)置的列的名稱。
- alias:用于指定列的別名,通過它可以把英文列標(biāo)題設(shè)置為漢字。
- option:用于指定某個(gè)列的顯示格式, option 選項(xiàng)的值及其說明如下表所示。
| option 選項(xiàng)的值 | 說 明 |
| CLEAR | 清除指定列所設(shè)置的顯示屬性,從而回復(fù)列使用默認(rèn)的顯示屬性 |
| FORMAT | 格式化指定的列 |
| HEADING | 定義列標(biāo)題 |
| JUSTIFY | 調(diào)整列標(biāo)題的對(duì)齊方式。默認(rèn)情況下:數(shù)值類型的列為右對(duì)齊,其他類型的列為左對(duì)齊 |
| NULL | 指定一個(gè)字符串,如果列的值為 null,則由該字符串代替 |
| PRINT/NOPRINT | 顯示列標(biāo)題或隱藏列標(biāo)題,默認(rèn)為 PRINT |
| ON|OFF | 控制定義的顯示屬性的狀態(tài), OFF 表示定義的所有顯示屬性都不起作用,默認(rèn)為 ON |
| WRAPPED | 當(dāng)字符串的長度超過顯示寬度時(shí),將字符串的超出部分折疊到下一行顯示 |
| WORD_WRAPPED | 表示從一個(gè)完整的字符處折疊 |
| TRUNCATED | 表示截?cái)嘧址膊?/td> |
4.1.1 FORMAT 選項(xiàng)
該選項(xiàng)用于格式化指定的列,需要在 FORMAT 關(guān)鍵字的后面跟一個(gè)掩碼格式。
SQL> col sal format $999,999.00 SQL> select empno,ename,sal from scott.emp;
4.1.2 HEADING 選項(xiàng)
該選項(xiàng)用于定義列標(biāo)題,比如,許多數(shù)據(jù)表或視圖的列名都為英文形式,可以使用此選項(xiàng)將英文形式的列標(biāo)題顯示為中文形式。
SQL> col empno heading 雇員編號(hào) SQL> col ename heading 雇員姓名 SQL> col sal heading 雇員工資 SQL> select empno,ename,sal from scott.emp;
4.1.3 NULL 選項(xiàng)
在該選項(xiàng)的后面指定一個(gè)字符串,如果列的值為 null,則用該字符串代替空值
SQL> col comm null '空值' SQL> select empno,ename,comm from scott.emp where comm is null;
4.1.4 ON|OFF 選項(xiàng)
該選項(xiàng)用于控制定義的顯示屬性的狀態(tài), OFF 表示定義的所有顯示屬性都不起作用,默認(rèn)為 ON。
4.1.5 WRAPPED/WORD_WRAPPED 選項(xiàng)
這兩個(gè)選項(xiàng)都用于實(shí)現(xiàn)折行的功能, WRAPPED 選項(xiàng)按照指定長度折行, WORD_WRAPPED 選項(xiàng)按照完整字符串折行。
4.2 TTITLE 和 BTITLE 命令
在 SQL*Plus 環(huán)境中,執(zhí)行 SQL 語句后的顯示結(jié)果在默認(rèn)情況下包括列標(biāo)題、頁分割線、查詢結(jié)果和行數(shù)合計(jì)等內(nèi)容,用這些默認(rèn)的輸出信息打印報(bào)表,如果能為整個(gè)輸出結(jié)果設(shè)置報(bào)表頭(即頭標(biāo)題)、為每頁都設(shè)置頁標(biāo)題和頁碼、為整個(gè)輸出結(jié)果設(shè)置報(bào)表尾(如打印時(shí)間或打印人員),那么使用這樣的輸出結(jié)果打印報(bào)表一定非常美觀。為了實(shí)現(xiàn)這些功能, SQL*Plus 工具提供了TTITLE 和 BTITLE 命令,這兩個(gè)命令分別用來設(shè)置打印時(shí)每頁的頂部和底部標(biāo)題。其中, TTITLE 命令的語法格式如下:
TTI[TLE] [printspec [text|variable] ...] | [OFF|ON]
- printspec:用來作為頭標(biāo)題的修飾性選項(xiàng), printspec 選項(xiàng)的值及其說明如下所示
- text:用于設(shè)置輸出結(jié)果的頭標(biāo)題(即報(bào)表頭文字)。
- variable:用于在頭標(biāo)題中輸出相應(yīng)的變量值。
- OFF:表示禁止打印頭標(biāo)題。
- ON:表示允許打印頭標(biāo)題。
printspec 選項(xiàng)的值及其說明
| printspec 選項(xiàng)的值 | 說 明 |
| COL | 指定在當(dāng)前行的第幾列打印頭部標(biāo)題 |
| SKIP | 跳到從下一行開始的第幾行,默認(rèn)為 1 |
| LEFT | 在當(dāng)前行中左對(duì)齊打印數(shù)據(jù) |
| CENTER | 在當(dāng)前行中間打印數(shù)據(jù) |
| RIGHT | 在當(dāng)前行中右對(duì)齊打印數(shù)據(jù) |
| BOLD | 以黑體打印數(shù)據(jù) |
注意:BTITLE 的語法格式與 TTITLE 的語法格式相同。 如果在 TTITLE 或 BTITLE 命令后沒有任何參數(shù),則顯示當(dāng)前的 TTITLE 或 BTITLE 的定義。
到此這篇關(guān)于Oracle中SQL*plus常用命令的文章就介紹到這了,更多相關(guān)Oracle SQL*plus常用命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle存儲(chǔ)過程的編寫經(jīng)驗(yàn)與優(yōu)化措施(分享)
本篇文章是對(duì)Oracle存儲(chǔ)過程的編寫經(jīng)驗(yàn)與優(yōu)化措施進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Oracle跨數(shù)據(jù)庫查詢并插入實(shí)現(xiàn)原理及代碼
需要從一個(gè)數(shù)據(jù)庫中的表GIS_WEICHAI_DATA_1S中的數(shù)據(jù)導(dǎo)入到另個(gè)一數(shù)據(jù)庫的表GIS_WEICHAI_DATA_1S中,接下來為你講解跨數(shù)據(jù)庫查詢并插入需要的朋友可以參考下2013-03-03
Oracle 11g Release (11.1) 索引底層的數(shù)據(jù)結(jié)構(gòu)
本文介紹關(guān)于 Oracle 索引的結(jié)構(gòu)。大概了解 Oracle 索引底層的數(shù)據(jù)結(jié)構(gòu),從而更好地理解 Oracle 索引對(duì)增、刪、改、查的性能2012-11-11
安裝Oracle時(shí)出現(xiàn)環(huán)境變量Path的值大于1023的解決辦法
這篇文章主要介紹了安裝Oracle時(shí)出現(xiàn)環(huán)境變量Path的值大于1023的解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-12-12
Oracle 8x監(jiān)控sysdba角色用戶登陸情況
Oracle 8x監(jiān)控sysdba角色用戶登陸情況...2007-03-03
Oracle中基于hint的3種執(zhí)行計(jì)劃控制方法詳細(xì)介紹
這篇文章主要介紹了Oracle中基于hint的3種執(zhí)行計(jì)劃控制方法詳細(xì)介紹,它們分別是OUTLINE(大綱)、SQL PROFILE(概要文件)、SQL BASELINE(基線),文中包含大量實(shí)例,需要的朋友可以參考下2014-07-07
Oracle 11gR2中啟動(dòng)Scott用戶的方法(推薦)
這篇文章主要介紹了Oracle 11gR2中啟動(dòng)Scott用戶的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08

