欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle中SQL*plus常用命令詳解

 更新時(shí)間:2024年01月18日 16:27:32   作者:愛(ài)吃牛肉的大老虎  
在 Oracle 11g 數(shù)據(jù)庫(kù)系統(tǒng)中,用戶對(duì)數(shù)據(jù)庫(kù)的操作主要是通過(guò) SQL*Plus 來(lái)完成的,下面將介紹如何啟動(dòng) SQL*Plus 和如何使用 SQL*Plus 連接到數(shù)據(jù)庫(kù),感興趣的朋友跟隨小編一起看看吧

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 表示所置字符
ECHOOFF|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ù)量
NULLtext設(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 的
值,則每次暫停都將顯示該字符串
RECSEPWR[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)文章

最新評(píng)論