日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
oracle對(duì)系統(tǒng)文件的讀寫(xiě)

oracle對(duì)系統(tǒng)文件的讀寫(xiě)操作是怎樣的呢?這是很多人都問(wèn)過(guò)的問(wèn)題,下面就為您詳細(xì)介紹oracle對(duì)系統(tǒng)文件的讀寫(xiě)操作,希望對(duì)您能夠有所幫助。

在SQL*Plus中可以對(duì)操作系統(tǒng)中的文本文件進(jìn)行簡(jiǎn)單的讀寫(xiě)訪問(wèn)。
例如,事先將SQL語(yǔ)句或者PL/SQL塊的代碼存放在文本文件中,再把文本文件調(diào)入緩沖區(qū)中,使之執(zhí)行。
或者把當(dāng)前緩沖區(qū)中的內(nèi)容保存到一個(gè)文件中,
或者把SQL語(yǔ)句、PL/SQL塊的執(zhí)行結(jié)果保存到文件中。

oracle對(duì)系統(tǒng)文件的讀寫(xiě):

1.讀文件涉及的命令包括@、get、start等命令。

@命令的作用是將指定的文本文件的內(nèi)容讀到緩沖區(qū)中,并執(zhí)行它。文本文件可以是本地文件,也可以是遠(yuǎn)程服務(wù)器上的文件。
如果是本地文件,@命令的命令的執(zhí)行格式為:@文件名
這里的文件名要指定完整的路徑,默認(rèn)的擴(kuò)展名是.sql,如果腳本文件使用了默認(rèn)的擴(kuò)展名,則在@命令中可以省略擴(kuò)展名。
如果是遠(yuǎn)程文件,必須將它存放到一個(gè)web服務(wù)器上,并以HTTP或FTP方式訪問(wèn)。這時(shí)@命令的命令的執(zhí)行格式為(以HTTP為例):@http://web服務(wù)器/文件名

使用@命令讀取文件時(shí),文件中可以包含多條SQL語(yǔ)句,每條語(yǔ)句以分號(hào)結(jié)束;或者可以包含一個(gè)PL/SQL塊。
文件被讀入緩沖區(qū)中以后,SQL*Plus將按順序執(zhí)行文件中的代碼,并將執(zhí)行結(jié)果輸出到顯示器上。
例如,假設(shè)在/home/oracle目錄下有一個(gè)文件,名為a.sql,文件的內(nèi)容為:
SELECT ename FROM emp WHERE empno=7902;  SELECT dname FROM dept WHERE deptno=10;
現(xiàn)在希望通過(guò)@命令將這個(gè)文件讀到緩沖區(qū)中,命令執(zhí)行的執(zhí)行格式如下:SQL> @/home/oracle /a

@命令還有一個(gè)用法,就是在啟動(dòng)SQL*Plus的同時(shí),將指定的文件讀入緩沖區(qū)并執(zhí)行它。
這時(shí)@命令和文件名一起作為SQL*Plus的命令行參數(shù),格式如下:sqlplus 用戶名/口令 @文件名
注意,這種格式與以前提到的使用網(wǎng)絡(luò)服務(wù)的格式是很相似的,
sqlplus 用戶名/口令 @文件名
sqlplus 用戶名/口令@網(wǎng)絡(luò)服務(wù)名
但是仍然有區(qū)別,請(qǐng)注意觀察:
sqlplus 用戶名/口令@網(wǎng)絡(luò)服務(wù)名 由于文件名和網(wǎng)絡(luò)服務(wù)名都表現(xiàn)為字符串,所以單純從名字上無(wú)法區(qū)分到底使用了文件名還是網(wǎng)絡(luò)服務(wù)名。
二者的區(qū)別在于第一種格式中在用戶名/口令之后有一個(gè)空格,這時(shí)將把后面的參數(shù)解釋為一個(gè)文件,并把這個(gè)文件加載到緩沖區(qū)中。
在第二種格式中,用戶名/口令之后沒(méi)有空格,這時(shí)將后面的參數(shù)解釋為網(wǎng)絡(luò)服務(wù)名。

get命令的作用與@命令相似,但是它只是把文件加載到緩沖區(qū)中,并不直接執(zhí)行。
get命令的的執(zhí)行格式為:get 文件名 選項(xiàng)
其中文件名的默認(rèn)擴(kuò)展名為.sql,在get命令中可以省略。目前get命令只支持本地的操作系統(tǒng)文件。
可以使用的選項(xiàng)有兩個(gè):LIST和NOLIST。
其中LIST選項(xiàng)指定將文件的內(nèi)容讀到緩沖區(qū)的同時(shí),還要在顯示器上輸出,這是默認(rèn)選項(xiàng)。
選項(xiàng)NOLIST使得文件的內(nèi)容不在顯示器上輸出。
使用get命令時(shí)還要注意,在文本文件中只能包含一條SQL語(yǔ)句,而且不能以分號(hào)結(jié)束。也可以只包含一個(gè)PL/SQL塊,塊以分號(hào)結(jié)束。

在使用@和get命令時(shí)要注意這些格式上的差別。例如,假設(shè)在/home/oracle目錄下有一個(gè)文件,名為b.sql,文件的內(nèi)容為:
SELECT ename FROM emp WHERE empno=7902 現(xiàn)在先通過(guò)get命令把它讀入緩沖區(qū),然后執(zhí)行/命令使之執(zhí)行:
SQL> get /home/oracle/b  1* SELECT ename FROM emp WHERE empno=7902 SQL> /  ENAME  ----------  FORD

start命令與@命令是等價(jià)的,這里不再贅述。

2.寫(xiě)文件涉及的命令包括save和spool。
其中save命令用于將當(dāng)前緩沖區(qū)中的內(nèi)容寫(xiě)入一個(gè)操作系統(tǒng)文件,而spool命令用于將命令的執(zhí)行結(jié)果輸出到一個(gè)操作系統(tǒng)文件。

save命令的格式為:SQL>save 文件名 選項(xiàng)
其中選項(xiàng)指定以什么樣的方式寫(xiě)文件??梢允褂玫倪x項(xiàng)有以下三個(gè):
CREATE 如果文件不存在,則創(chuàng)建。否則,命令執(zhí)行失敗。
APPEND 如果文件不存在,則創(chuàng)建。否則,在文件末尾追加。
REPLACE 如果文件不存在,則創(chuàng)建。否則刪除原文件,重新創(chuàng)建。
如果不指定完整的路徑,則在當(dāng)前目錄下產(chǎn)生這個(gè)文件,文件的默認(rèn)擴(kuò)展名是.sql。
例如,假設(shè)當(dāng)前緩沖區(qū)中有一條SELECT語(yǔ)句,使用save命令可以將這條語(yǔ)句寫(xiě)入文件:
SQL> list    1* SELECT * FROM emp 
SQL> save /home/oracle/aa

spool命令利用假脫機(jī)技術(shù),用于將SQL*Plus的輸出寫(xiě)入到文件中,它有以下幾種用法:
spool 得到當(dāng)前spool的狀態(tài),默認(rèn)為不可用。
spool 文件名 啟動(dòng)spool,并打開(kāi)指定的文件。
spool off 關(guān)閉spool,并將SQL*Plus的輸出寫(xiě)入文件中。
spool out 關(guān)閉spool,將SQL*Plus的輸出寫(xiě)入文件中,并同時(shí)送往打印機(jī)。

如果在SQL*Plus中以命令行的方式執(zhí)行spool命令,那么從執(zhí)行spool命令并打開(kāi)文件開(kāi)始,此后的所有輸出,包括錯(cuò)誤信息,以及用戶的鍵盤輸入,都將寫(xiě)入指定的文件,直到遇到“spool off”或者“spool out”。
但是這些信息的寫(xiě)入是一次性完成,即在執(zhí)行“spool off”或者“spool out”的一瞬間,這些信息才一次全部寫(xiě)入文件,包括最后執(zhí)行的“spool off”或者“spool out”命令本身。
文件的默認(rèn)擴(kuò)展名為.LST,默認(rèn)的路徑是當(dāng)前目錄。

spool命令通常的用法是生成報(bào)表。
首先將精心設(shè)計(jì)的SQL語(yǔ)句存放在一個(gè)文件中,在產(chǎn)生輸出的語(yǔ)句前后加上spool命令,然后將這個(gè)文件讀到緩沖區(qū)中執(zhí)行。
這樣在寫(xiě)入的文件中只有命令執(zhí)行的結(jié)果,而不包括SQL語(yǔ)句本身。

例如,假設(shè)當(dāng)前目錄下有一個(gè)文件,名為c.sql,它的內(nèi)容為:
spool cc  SELECT ename,sal FROM emp WHERE deptno=10;  spool off 現(xiàn)在將這個(gè)文件讀到緩沖區(qū)中,并使之執(zhí)行,執(zhí)行結(jié)果如下:
SQL> @c 
ENAME SAL  CLARK 2450  KING 5000  MILLER 1300
文件中SQL語(yǔ)句的執(zhí)行結(jié)果顯示在屏幕上,同時(shí)在當(dāng)前目錄下生成了文件cc.LST,文件的內(nèi)容與屏幕上顯示的結(jié)果完全一致。


當(dāng)前標(biāo)題:oracle對(duì)系統(tǒng)文件的讀寫(xiě)
當(dāng)前路徑:http://www.5511xx.com/article/djiseoh.html