日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何正確在Oracle運(yùn)行操作系統(tǒng)命令?

我們大家都知道在Oracle 8i數(shù)據(jù)庫(kù)中,我們經(jīng)常會(huì)發(fā)現(xiàn)出現(xiàn)會(huì)Oracle運(yùn)行操作的系統(tǒng)命令.就一般情況而言,利用Oracle Enterprise Manager來(lái)設(shè)定作業(yè)能達(dá)到我們想要的目的.但是由于OEM在設(shè)定作業(yè)缺乏靈活性,設(shè)定的作業(yè)的參數(shù)是固定的。

創(chuàng)新互聯(lián)是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),天山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:天山等地區(qū)。天山做網(wǎng)站價(jià)格咨詢(xún):18982081108

在實(shí)際應(yīng)用當(dāng)中往往需要在SQL語(yǔ)句當(dāng)中運(yùn)行需要隨時(shí)Oracle運(yùn)行操作系統(tǒng)命令.Oracle 8i沒(méi)有直接運(yùn)行OS命令的語(yǔ)句,我們可以利用DBMS_PIPE程序包實(shí)現(xiàn)這一要求.

DBMS_PIPE通過(guò)創(chuàng)建管道,可以讓至少兩個(gè)進(jìn)程進(jìn)行通信.Oracle的管道與操作系統(tǒng)的管道在概念上有相同的地方,但是在實(shí)現(xiàn)機(jī)制不同.
下面介紹實(shí)現(xiàn)具體步驟:

1 創(chuàng)建一個(gè)程序包,姑且起名叫DAEMON,SQL語(yǔ)句如下:

創(chuàng)建daemon程序包

 
 
 
  1. CREATE OR REPLACE PACKAGE BODY daemon AS  

execute_system是實(shí)現(xiàn)運(yùn)行os命令的函數(shù)

 
 
 
  1. FUNCTION execute_system(command VARCHAR2,   
  2. timeout NUMBER DEFAULT 10)   
  3. RETURN NUMBER IS   
  4. status NUMBER;   
  5. result VARCHAR2(20);   
  6. command_code NUMBER;   
  7. pipe_name VARCHAR2(30);   
  8. BEGIN   
  9. pipe_name := DBMS_PIPE.UNIQUE_SESSION_NAME;   
  10. DBMS_PIPE.PACK_MESSAGE(''SYSTEM'');   
  11. DBMS_PIPE.PACK_MESSAGE(pipe_name);   
  12. DBMS_PIPE.PACK_MESSAGE(command);   

向daemon管道發(fā)送表示命令的字符

 
 
 
  1. status := DBMS_PIPE.SEND_MESSAGE(''daemon'', timeout);   
  2. IF status <> 0 THEN   
  3. RAISE_APPLICATION_ERROR(-20010,   
  4. ''Execute_system: Error while sending. Status = '' || status);   
  5. END IF;   
  6. status := DBMS_PIPE.RECEIVE_MESSAGE(pipe_name, timeout);   
  7. IF status <> 0 THEN   
  8. RAISE_APPLICATION_ERROR(-20011,   
  9. ''Execute_system: Error while receiving.   
  10. Status = '' || status);   
  11. END IF;   

獲取返回結(jié)果

 
 
 
  1. DBMS_PIPE.UNPACK_MESSAGE(result);   
  2. IF result <> ''done'' THEN   
  3. RAISE_APPLICATION_ERROR(-20012,   
  4. ''Execute_system: Done not received.'');   
  5. END IF;   
  6.  
  7. DBMS_PIPE.UNPACK_MESSAGE(command_code);   
  8. DBMS_OUTPUT.PUT_LINE(''System command executed. result = '' ||   
  9. command_code);   
  10. RETURN command_code;   
  11. END execute_system;   
  12. stop是讓daemon停止*/   
  13. PROCEDURE stop(timeout NUMBER DEFAULT 10) IS   
  14. status NUMBER;   
  15. BEGIN   
  16. DBMS_PIPE.PACK_MESSAGE(''STOP'');   
  17. status := DBMS_PIPE.SEND_MESSAGE(''daemon'', timeout);   
  18. IF status <> 0 THEN   
  19. RAISE_APPLICATION_ERROR(-20030,   
  20. ''stop: error while sending. status = '' || status);   
  21. END IF;   
  22. END stop;   
  23. END daemon;  

通過(guò)Sql*Plus運(yùn)行以上語(yǔ)句,將為當(dāng)前用戶(hù)創(chuàng)建daemon程序包. 以上的相關(guān)內(nèi)容就是對(duì)在Oracle運(yùn)行操作系統(tǒng)命令的創(chuàng)建一個(gè)程序包介紹,望你能有所收獲。

【編輯推薦】

  1. 手動(dòng)Oracle創(chuàng)建數(shù)據(jù)庫(kù)的步驟有哪些?
  2. Oracle數(shù)據(jù)比較的兩大妙招
  3. 實(shí)現(xiàn)異地Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)同步步驟
  4. Oracle分頁(yè)查詢(xún)語(yǔ)句的實(shí)際應(yīng)用
  5. Oracle字符集中的一些問(wèn)題總結(jié)

名稱(chēng)欄目:如何正確在Oracle運(yùn)行操作系統(tǒng)命令?
網(wǎng)站地址:http://www.dlmjj.cn/article/dpsdehc.html