欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

oracle對(duì)操作系統(tǒng)文件的讀寫操作

系統(tǒng) 2193 0

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

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

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

使用@命令讀取文件時(shí),文件中可以包含多條SQL語句,每條語句以分號(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)在希望通過@命令將這個(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)為字符串,所以單純從名字上無法區(qū)分到底使用了文件名還是網(wǎng)絡(luò)服務(wù)名。
二者的區(qū)別在于第一種格式中在用戶名/口令之后有一個(gè)空格,這時(shí)將把后面的參數(shù)解釋為一個(gè)文件,并把這個(gè)文件加載到緩沖區(qū)中。
在第二種格式中,用戶名/口令之后沒有空格,這時(shí)將后面的參數(shù)解釋為網(wǎng)絡(luò)服務(wù)名。

1.2 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語句,而且不能以分號(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)在先通過get命令把它讀入緩沖區(qū),然后執(zhí)行/命令使之執(zhí)行:
SQL> get /home/oracle/b? 1* SELECT ename FROM emp WHERE empno=7902 SQL> /? ENAME? ----------? FORD

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

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

2.1 save命令的格式為:SQL>save 文件名 選項(xiàng)
其中選項(xiàng)指定以什么樣的方式寫文件。可以使用的選項(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語句,使用save命令可以將這條語句寫入文件:
SQL> list??? 1* SELECT * FROM emp?
SQL> save /home/oracle/aa

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

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

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

例如,假設(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語句的執(zhí)行結(jié)果顯示在屏幕上,同時(shí)在當(dāng)前目錄下生成了文件cc.LST,文件的內(nèi)容與屏幕上顯示的結(jié)果完全一致。


exp:
SQL> get c:/temp/6-data ;?? 將文件讀到緩沖區(qū)
SQL> save c:/temp/1.sql;??? 將緩沖區(qū)內(nèi)容保存到文件

SQL> @install.sql;?????????? 執(zhí)行文件
sqlplusw ies/ies2010@orcl ? @install.sql (run.bat) 啟動(dòng)SQL*Plus,并執(zhí)行文件

spool insert_sql.log;??? 將執(zhí)行結(jié)果輸出到文件
...
spool off;?????

正則表達(dá)式
^.*rows selected$
^.*rows inserted$

oracle對(duì)操作系統(tǒng)文件的讀寫操作


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 斗罗破苍穹在线观看免费完整观看 | 四虎影视免费在线观看 | 国产一区二区三区免费观看 | 碰超丶在线免费 | 日本污污视频在线观看 | 97国产在线播放 | 欧美不在线 | av毛片在线免费看 | 97久久精品午夜一区二区 | 欧美高清视频一区 | 国产精品欧美一区二区在线看 | 国产精品色综合久久 | 最近免费日本视频在线 | 27xxoo无遮挡动态视频 | 欧美一级久久 | 欧美精品1区 | 蜜臀AV国产精品久久久久 | 婷婷激情综合色五月久久竹菊影视 | 高清男女性高爱潮免费 | 欧美高清成人 | 欧美久久xxxxxx影院 | 国产精品久久久久久吹潮 | 4438激情网 | 草草浮力影视 | 成人久久 | 男人电影天堂 | 久久久www成人免费无遮挡大片 | 日本免费观看官网 | 久久香蕉综合精品国产 | 亚洲h视频| 国产精品偷拍 | 毛片大全免费看 | 亚洲在线播放 | 成人欧美在线观看 | 久久久www成人免费精品张筱雨 | 精品久久久久久 | 国产视频在线免费观看 | 精品毛片 | ccyy草草影院 | 污视频免费在线观看 | 日韩精品网 |