Oracle中SQL*plus常用命令詳解
1 SQL*plus工具
在 Oracle 11g 數(shù)據(jù)庫(kù)系統(tǒng)中,用戶對(duì)數(shù)據(jù)庫(kù)的操作主要是通過(guò) SQL*Plus 來(lái)完成的。 SQL*Plus 作為 Oracle 的客戶端工具,既可以建立位于數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)連接,也可以建立位于網(wǎng)絡(luò)中的數(shù)據(jù)連接。下面將介紹如何啟動(dòng) SQL*Plus 和如何使用 SQL*Plus 連接到數(shù)據(jù)庫(kù)。
1.1 oracle自帶的工具
選擇“開(kāi)始” /“所有程序” /Oracle-OraDb11g_home1/“應(yīng)用程序開(kāi)發(fā)” /SQL*Plus ,打開(kāi)如圖 所示的 SQL*Plus 啟動(dòng)界面
在命令提示符的位置輸入登錄用戶(如 SYSTEM 或 SYS 等系統(tǒng)管理賬戶)和口令(口令是在安裝或創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定的), 若輸入的用戶名和口令正確, 則 SQL*Plus 將連接到數(shù)據(jù)庫(kù), 如圖所示。需要特殊身份的as sysdba或者sysoper,否則就是普通的用戶,就什么也不用添加
1.2 cmd命令
還可以通過(guò)在“運(yùn)行”中輸入 cmd 命令來(lái)啟動(dòng)命令行窗口,然后在該窗口輸入 SQL*Plus命令來(lái)連接數(shù)據(jù)庫(kù)。使用 SQL*Plus 命令連接數(shù)據(jù)庫(kù)實(shí)例的語(yǔ)法格式如下:
SQLPLUS username[/password][@connect_identifier] [AS SYSOPER|SYSDBA]
- username:表示登錄用戶名。
- password:表示登錄口令。
- @connect_identifier:表示連接的全局?jǐn)?shù)據(jù)庫(kù)名,若連接本機(jī)上的默認(rèn)數(shù)據(jù)庫(kù),則可以省略。
在輸入 Oracle 數(shù)據(jù)庫(kù)命令時(shí),其關(guān)鍵字不區(qū)分大小寫(xiě)(比如,輸入 sqlplus 或 SQLPLUS 都可以),但參數(shù)區(qū)分大小寫(xiě)。
1.3 修改sys密碼
oracle初始密碼有人說(shuō)是沒(méi)有密碼或者密碼是 任何字母+as+sysdba,可以通過(guò)在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: 無(wú)法打開(kāi)口令文件。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)限,但是沒(méi)有SYSDBA權(quán)限,用戶只能用normal身份登陸。system是數(shù)據(jù)庫(kù)內(nèi)置的一個(gè)普通管理員,手工創(chuàng)建的任何用戶在被授予dba角色后都跟這個(gè)用戶差不多。
sys:用戶具有“SYSDBA”或者“SYSOPER”權(quán)限,登陸也只能用這兩個(gè)身份,不能用normal。SYS用戶具有DBA權(quán)限,并具有SYS模式。只能通過(guò)SYSDBA登錄數(shù)據(jù)庫(kù),是Oracle數(shù)據(jù)庫(kù)中權(quán)限最高的帳號(hào)
2 SET 命令概述
在 Oracle 11g 數(shù)據(jù)庫(kù)中,用戶可以使用 SET 命令來(lái)設(shè)置 SQL*Plus 的運(yùn)行環(huán)境, SET 命令的語(yǔ)法格式為:
SET system_variable value
- system_variable:變量名。
- value:變量值。
- SET 命令的常用變量名、可選值及其說(shuō)明下圖所示。
變 量 名 | 變量可選值 | 說(shuō) 明 |
ARRAY[SIZE] | 20(默認(rèn)值) |n | 設(shè)置查詢的行數(shù),是 SQL*Plus 一次從數(shù)據(jù)庫(kù)獲取的行數(shù),有 效值為 1 至 5000。大的值可提高查詢和子查詢的有效性,可獲取 許多行,但也需要更多的內(nèi)存。當(dāng)超過(guò) 1000 時(shí),其效果不大 |
AUTO[COMMIT] | OFF(默認(rèn)值) |ON| IMMEDIATE | 控制 Oracle 對(duì)數(shù)據(jù)庫(kù)的修改的提交。設(shè)置為 ON 時(shí),在 Oracle 執(zhí)行每個(gè) SQL 命令或 PL/SQL 塊后對(duì)數(shù)據(jù)庫(kù)自動(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ì)齊文本。可定義 LINESIZE 為 1 至最大值,其最大值依賴于操作系統(tǒng) |
NEWP[AGE] | 1(默認(rèn)值) |n | 設(shè)置一頁(yè)中空行的數(shù)量 |
NULL | text | 設(shè)置表示空值(NULL)的文本,如果 NULL 沒(méi)有文本,則顯 示空格(默認(rèn)時(shí))。使用 COLUMN 命令中的 NULL 子句可控 制 NULL 變量對(duì)該列的設(shè)置 |
NUMF[ORMAT] | 格式 | 設(shè)置顯示數(shù)值的默認(rèn)格式,該格式是數(shù)值格式 |
PAGES[IZE] | 14(默認(rèn)值) |n | 設(shè)置從頂部標(biāo)題至頁(yè)結(jié)束之間的行數(shù) |
PAU[SE] | OFF(默認(rèn)值) |ON|TEXT | 設(shè)置 SQL*Plus 輸出結(jié)果是否滾動(dòng)顯示。當(dāng)設(shè)置為 ON 時(shí),表示 輸出結(jié)果的每一頁(yè)都暫停,用戶按 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ǔ)過(guò)程是否顯示輸出。若設(shè)置為 OFF, 則禁止;若設(shè)置為 ON,則顯示輸出。 SIZE 設(shè)置緩沖輸出的字節(jié) 數(shù),缺省值為 2000, n 不能小于 2000 或大于 100 萬(wàn) |
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 將 下劃線置成開(kāi)或關(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í)間。但需要注意的是:通過(guò) 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 變量
該變量用來(lái)設(shè)置從頂部標(biāo)題至頁(yè)結(jié)束之間的行數(shù),其語(yǔ)法格式如下:
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 的一頁(yè)。一頁(yè)中所顯示的數(shù)據(jù)行的數(shù)量就是PAGESIZE 變量的值。若要查看當(dāng)前 SQL*Plus 環(huán)境中的一頁(yè)有多少行,可以使用 show pagesize 命令。
SQL> show pagesize pagesize 14
不要把當(dāng)前窗口區(qū)域內(nèi)能夠顯示的行數(shù)看做 SQL*Plus 環(huán)境中一頁(yè)的行數(shù),一頁(yè)的行數(shù)由PAGESIZE 變量值來(lái)決定。如果默認(rèn)的 14 行不符合實(shí)際情況的需要,可以修改 PAGESIZE 變量的值。
使用 set pagesize 命令修改一頁(yè)的行數(shù)為 18,然后再使用新的 pagesize 值顯示數(shù)據(jù)行,具體代碼如下。
SQL> set pagesize 18 SQL> select user_id,username,account_status from dba_users;
2.1.2 NEWPAGE 變量
該變量用來(lái)設(shè)置一頁(yè)中空行的數(shù)量,其語(yǔ)法格式如下:
SET NEWPAGE value
value 的默認(rèn)值為 1,根據(jù)實(shí)際情況的需要,用戶可以修改 value 的值,該值是一個(gè)正整數(shù)
2.1.3 LINESIZE 變量
該變量用來(lái)設(shè)置在 SQL*Plus 環(huán)境中一行所顯示的最多字符總數(shù),其語(yǔ)法格式如下:
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ù)庫(kù)的過(guò)程中,要根據(jù)具體情況來(lái)適當(dāng)調(diào)整 LINESIZE 的值。
2.1.4 PAUSE 變量
該變量用來(lái)設(shè)置 SQL*Plus 輸出結(jié)果是否滾動(dòng)顯示,其語(yǔ)法格式如下:
SET PAUSE value
value 變量值有以下 3 種情況:
OFF:這是默認(rèn)值,返回結(jié)果一次性輸出完畢,中間的每一頁(yè)不會(huì)暫停。
ON:表示輸出結(jié)果的每一頁(yè)都暫停,用戶按 Enter 鍵后繼續(xù)顯示。
TEXT:在設(shè)置 PAUSE 的值為 ON 之后,若再設(shè)置 TEXT 的值,則每次暫停都將顯示該字符串。當(dāng) PAUSE 的值為 OFF 時(shí),設(shè)置TEXT 值沒(méi)有任何意義。
當(dāng)在 SQL*Plus 環(huán)境中顯示多行數(shù)據(jù),并且一頁(yè)無(wú)法容納下這么多數(shù)據(jù)行時(shí),如果 PAUSE 變量值為 OFF,則 SQL*Plus 窗口輸出的數(shù)據(jù)行會(huì)快速滾動(dòng),非常不利于用戶查看。這就需要數(shù)據(jù)行在滾動(dòng)時(shí)最好能夠按頁(yè)暫停,以便于用戶逐頁(yè)地查看輸出結(jié)果。當(dāng)把 PAUSE 變量的值設(shè)置為 ON 時(shí),就可以實(shí)現(xiàn)控制 SQL*Plus 在顯示完一頁(yè)后暫停滾動(dòng),直到按 Enter 鍵后才繼續(xù)顯示下一頁(yè)。另外, 在設(shè)置 PAUSE
變量值為 ON 之后,還可以通過(guò) 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 變量
該變量用來(lái)設(shè)置顯示數(shù)值的默認(rèn)格式,該格式是數(shù)值格式,其語(yǔ)法格式如下:
SET NUMFORMAT format
format 為數(shù)值的掩碼,數(shù)值的常用掩碼及其說(shuō)明如表
掩 碼 | 說(shuō) 明 | 舉 例 |
9 | 查詢結(jié)果中數(shù)字替換格式中的掩碼(不會(huì)占用空格) | 999 |
0 | 格式中的掩碼屏蔽掉查詢結(jié)果中的數(shù)字(但是會(huì)占用空格位) | 999.00 |
$ | 在查詢結(jié)果中的數(shù)字前添加美元前綴 | $999 |
S | 為數(shù)字顯示符號(hào)類(lèi)型,通常用于顯示查詢結(jié)果中的正負(fù)數(shù)字 | S999 |
, | 在字符“,”位置上放置逗號(hào) | 999,99 |
3 SQL*plus的常用命令
3.1 HELP 命令
SQL*Plus 工具提供了許多操作 Oracle 數(shù)據(jù)庫(kù)的命令,并且每個(gè)命令都有很多選項(xiàng),把所有命令的選項(xiàng)都記住,這對(duì)于用戶來(lái)說(shuō)非常困難。為了解決這個(gè)難題, SQL*Plus 提供了 HELP 命令來(lái)幫助用戶查詢指定命令的選項(xiàng)。 HELP 可以向用戶提供被查詢命令的標(biāo)題、功能描述、縮寫(xiě)形式和參數(shù)選項(xiàng)(包括必選參數(shù)和可選參數(shù))等信息。 HELP 命令的語(yǔ)法形式如下:
HELP|? [topic]
- “?”表示一個(gè)命令的部分字符,這樣就可以通過(guò)提供命令的部分字符以模糊查詢的方式來(lái)查詢命令格式;topic 參數(shù)表示將要查詢的命令的完整名稱(chēng)。若省略“?”和“topic”參數(shù),直接執(zhí)行 HELP命令,則會(huì)輸出 HELP 命令本身的語(yǔ)法格式及其功能描述信息。
- 使用 help index 命令來(lái)查看 SQL*Plus 命令清單,具體代碼如下
SQL> help index
3.2 DESCRIBE 命令
在 SQL*Plus 的眾多命令中, DESCRIBE 命令可能是被使用得最頻繁的一個(gè),它用來(lái)查詢指定數(shù)據(jù)對(duì)象的組成結(jié)構(gòu)。比如,通過(guò) DESCRIBE 命令查詢表和視圖的結(jié)構(gòu),查詢結(jié)果就可以列出其各個(gè)列的名稱(chēng)、是否為空及類(lèi)型等屬性。 DESCRIBE 命令的語(yǔ)法形式如下:
desc[ribe] object_name;
describe 可以縮寫(xiě)為 desc, object_name 表示將要查詢的對(duì)象名稱(chēng)。
DESCRIBE 命令不僅可以查詢表、視圖的結(jié)構(gòu),而且還可以查詢過(guò)程、函數(shù)和程序包等PL/SQL 對(duì)象的規(guī)范
3.3 SPOOL 命令
SPOOL 命令可以把查詢結(jié)果輸出到指定文件中,這樣可以保存查詢結(jié)果并方便打印。
SPOOL 命令的語(yǔ)法格式如下:
desc[ribe] object_name;
參數(shù) file_name 用于指定脫機(jī)文件的名稱(chēng),默認(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)容,否則輸出文件中無(wú)內(nèi)容或無(wú)更新內(nèi)容。
3.4 DEFINE 命令
該命令用來(lái)定義一個(gè)用戶變量并且可以分配給它一個(gè) CHAR 值,其語(yǔ)法格式如下:
DEF[INE] [variable] | [variable = text]
- variable:表示定義的變量名。
- text:變量的 CHAR 值
例子如下:
SQL> def a =qwe; SQL> def a; DEFINE a = "qwe" (CHAR)
3.5 SHOW 命令
該命令用來(lái)顯示 SQL*Plus 系統(tǒng)變量的值或 SQL*Plus 環(huán)境變量的值,其語(yǔ)法格式如下:
SHO[W] option
option 表示要顯示的系統(tǒng)選項(xiàng),常用的選項(xiàng)有 ALL、 PARAMETERS [parameter_name]、 SGA、SPOOL、 USER 等
3.6 EDIT 命令
SQL 語(yǔ)句或 PL/SQL 塊在執(zhí)行完畢之后,可以被存儲(chǔ)在一個(gè)被稱(chēng)為 SQL 緩沖區(qū)的內(nèi)存區(qū)域中,用戶可以從 SQL 緩沖區(qū)中重新調(diào)用、編輯或運(yùn)行那些最近輸入的 SQL 語(yǔ)句。若要編輯 SQL 緩沖區(qū)中的最近一條 SQL 語(yǔ)句或 PL/SQL 塊,即可以在 SQL*Plus 環(huán)境中直接編輯,也可以使用 EDIT 命令實(shí)現(xiàn)在記事本中編輯。 EDIT 命令用來(lái)編輯 SQL 緩沖區(qū)或指定磁盤(pán)文件中的 SQL 語(yǔ)句或 PL/SQL 塊,其語(yǔ)法
格式如下:
ED[IT] [file_name[.ext]]
參數(shù) file_name 表示要編輯的磁盤(pán)文件名。若在 SQL*Plus 中只輸入“EDIT”命令,而不指定 file_name參數(shù)的值,則表示編輯 SQL 緩沖區(qū)中的最近一條 SQL 語(yǔ)句或 PL/SQL 塊。
執(zhí)行 EDIT 命令后, SQL*Plus 工具將打開(kāi)一個(gè)包含有 SQL 語(yǔ)句或 PL/SQL 塊的記事本,用戶就可以在記事本環(huán)境下編輯 SQL 語(yǔ)句或 PL/SQL 塊。
注意:如果要執(zhí)行 SQL 緩沖區(qū)中最近一條 SQL 語(yǔ)句,可以使用運(yùn)行命令“ /”來(lái)執(zhí)行,這樣可以簡(jiǎn)化操作
3.7 SAVE 命令
該命令實(shí)現(xiàn)將 SQL緩沖區(qū)中的最近一條 SQL語(yǔ)句或 PL/SQL塊保存到一個(gè)文件中,其語(yǔ)法格式如下:
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ū),其語(yǔ)法格式如下:
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è)命令都可以用來(lái)執(zhí)行一個(gè) SQL 腳本文件,它們的語(yǔ)法格式如下:
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)題等功能。其語(yǔ)法格式如下:
COL[UMN] [column_name | alias | option] COL[UMN] [column_name | alias | option]
- column_name:用于指定要設(shè)置的列的名稱(chēng)。
- alias:用于指定列的別名,通過(guò)它可以把英文列標(biāo)題設(shè)置為漢字。
- option:用于指定某個(gè)列的顯示格式, option 選項(xiàng)的值及其說(shuō)明如下表所示。
option 選項(xiàng)的值 | 說(shuō) 明 |
CLEAR | 清除指定列所設(shè)置的顯示屬性,從而回復(fù)列使用默認(rèn)的顯示屬性 |
FORMAT | 格式化指定的列 |
HEADING | 定義列標(biāo)題 |
JUSTIFY | 調(diào)整列標(biāo)題的對(duì)齊方式。默認(rèn)情況下:數(shù)值類(lèi)型的列為右對(duì)齊,其他類(lèi)型的列為左對(duì)齊 |
NULL | 指定一個(gè)字符串,如果列的值為 null,則由該字符串代替 |
PRINT/NOPRINT | 顯示列標(biāo)題或隱藏列標(biāo)題,默認(rèn)為 PRINT |
ON|OFF | 控制定義的顯示屬性的狀態(tài), OFF 表示定義的所有顯示屬性都不起作用,默認(rèn)為 ON |
WRAPPED | 當(dāng)字符串的長(zhǎng)度超過(guò)顯示寬度時(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)按照指定長(zhǎng)度折行, WORD_WRAPPED 選項(xiàng)按照完整字符串折行。
4.2 TTITLE 和 BTITLE 命令
在 SQL*Plus 環(huán)境中,執(zhí)行 SQL 語(yǔ)句后的顯示結(jié)果在默認(rèn)情況下包括列標(biāo)題、頁(yè)分割線、查詢結(jié)果和行數(shù)合計(jì)等內(nèi)容,用這些默認(rèn)的輸出信息打印報(bào)表,如果能為整個(gè)輸出結(jié)果設(shè)置報(bào)表頭(即頭標(biāo)題)、為每頁(yè)都設(shè)置頁(yè)標(biāo)題和頁(yè)碼、為整個(gè)輸出結(jié)果設(shè)置報(bào)表尾(如打印時(shí)間或打印人員),那么使用這樣的輸出結(jié)果打印報(bào)表一定非常美觀。為了實(shí)現(xiàn)這些功能, SQL*Plus 工具提供了TTITLE 和 BTITLE 命令,這兩個(gè)命令分別用來(lái)設(shè)置打印時(shí)每頁(yè)的頂部和底部標(biāo)題。其中, TTITLE 命令的語(yǔ)法格式如下:
TTI[TLE] [printspec [text|variable] ...] | [OFF|ON]
- printspec:用來(lái)作為頭標(biāo)題的修飾性選項(xiàng), printspec 選項(xiàng)的值及其說(shuō)明如下所示
- text:用于設(shè)置輸出結(jié)果的頭標(biāo)題(即報(bào)表頭文字)。
- variable:用于在頭標(biāo)題中輸出相應(yīng)的變量值。
- OFF:表示禁止打印頭標(biāo)題。
- ON:表示允許打印頭標(biāo)題。
printspec 選項(xiàng)的值及其說(shuō)明
printspec 選項(xiàng)的值 | 說(shuō) 明 |
COL | 指定在當(dāng)前行的第幾列打印頭部標(biāo)題 |
SKIP | 跳到從下一行開(kāi)始的第幾行,默認(rèn)為 1 |
LEFT | 在當(dāng)前行中左對(duì)齊打印數(shù)據(jù) |
CENTER | 在當(dāng)前行中間打印數(shù)據(jù) |
RIGHT | 在當(dāng)前行中右對(duì)齊打印數(shù)據(jù) |
BOLD | 以黑體打印數(shù)據(jù) |
注意:BTITLE 的語(yǔ)法格式與 TTITLE 的語(yǔ)法格式相同。 如果在 TTITLE 或 BTITLE 命令后沒(méi)有任何參數(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多表查詢中間表的創(chuàng)建實(shí)例教程
這篇文章主要給大家介紹了關(guān)于Oracle多表查詢中間表的創(chuàng)建的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02ORACLE常見(jiàn)錯(cuò)誤代碼的分析與解決(二)
ORACLE常見(jiàn)錯(cuò)誤代碼的分析與解決(二)...2007-03-03- Oracle中如果刪除了表中的某一條數(shù)據(jù),還可以通過(guò)回滾操作(rollback)進(jìn)行回滾,假如想清空一張表的數(shù)據(jù),但是又不想使其能進(jìn)行回滾操作,就可以立刻釋放資源,這時(shí)就需要使用截?cái)啾?/div> 2012-11-11
優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫(kù)恢復(fù)
優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫(kù)恢復(fù)...2007-03-03ORACLE多條件統(tǒng)計(jì)查詢的簡(jiǎn)單方法
這篇文章主要介紹了ORACLE多條件統(tǒng)計(jì)查詢的簡(jiǎn)單方法,具有一定參考價(jià)值。這里給大家分享下,希望對(duì)大家有所幫助。2017-10-10oracle查詢鎖表及解鎖,修改表字段名與復(fù)制表結(jié)構(gòu)和數(shù)據(jù)的方法
今天小編就為大家分享一篇關(guān)于oracle查詢鎖表及解鎖,修改表字段名與復(fù)制表結(jié)構(gòu)和數(shù)據(jù)的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Oracle12c的數(shù)據(jù)庫(kù)向11g導(dǎo)進(jìn)的方法
這篇文章主要介紹了 Oracle12c的數(shù)據(jù)庫(kù)向11g導(dǎo)進(jìn)的方法的相關(guān)資料,需要的朋友可以參考下2016-03-03Oracle使用fy_recover_data恢復(fù)truncate刪除的數(shù)據(jù)
這篇文章主要介紹了Oracle使用fy_recover_data恢復(fù)truncate刪除的數(shù)據(jù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07Oracle實(shí)現(xiàn)分頁(yè)查詢的SQL語(yǔ)法匯總
這篇文章主要介紹了Oracle實(shí)現(xiàn)分頁(yè)查詢的SQL語(yǔ)法,非常實(shí)用的功能,需要的朋友可以參考下2014-08-08最新評(píng)論