国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle如何直接運行OS命令(上)第1/2頁

2020-07-26 14:41:19
字體:
來源:轉載
供稿:網友
正在看的ORACLE教程是:Oracle如何直接運行OS命令(上)。

  在Oracle 8i中,往往會出現要在存儲過程中運行操作系統命令的情況。一般來說,利用Oracle Enterprise Manager設定作業時可以達到這個目的。但是由于OEM在設定作業缺 乏靈活性,設定的作業的參數是固定的。在實際應用當中往往需要在SQL語句當中運行需要隨時運行操作系統命令。Oracle 8i沒有直接運行OS命令的語句,我們可以利用DBMS_PIPE程序包實現這一要求。 

  DBMS_PIPE通過創建管道,可以讓至少兩個進程進行通信。Oracle的管道與操作系統的管道在概念上有相同的地方,但是在實現機制不同。

  下面介紹實現具體步驟: 

  1、創建一個程序包,姑且起名叫DAEMON,SQL語句如下: 

  /*創建daemon程序包*/ 
  CREATE OR REPLACE PACKAGE BODY daemon AS 
  /*execute_system是實現運行os命令的函數*/ 
  FUNCTION execute_system(command VARCHAR2, 
  timeout NUMBER DEFAULT 10) 
  RETURN NUMBER IS 

  status NUMBER;
  result VARCHAR2(20);
  command_code NUMBER;
  pipe_name VARCHAR2(30);
  BEGIN 
  pipe_name := DBMS_PIPE.UNIQUE_SESSION_NAME;
  DBMS_PIPE.PACK_MESSAGE('SYSTEM');
  DBMS_PIPE.PACK_MESSAGE(pipe_name);
  DBMS_PIPE.PACK_MESSAGE(command);
  /*向daemon管道發送表示命令的字符*/ 
  status := DBMS_PIPE.SEND_MESSAGE('daemon', timeout);
  IF status <> 0 THEN 
  RAISE_APPLICATION_ERROR(-20010, 
  'Execute_system: Error while sending. Status = ' || status);
  END IF;

12下一頁閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 施甸县| 砚山县| 万州区| 三原县| 滦平县| 和田市| 太仆寺旗| 长治市| 临汾市| 临朐县| 遵义县| 兴仁县| 青岛市| 衡山县| 肥城市| 嘉峪关市| 屏东县| 凤台县| 胶南市| 庆元县| 高邑县| 清远市| 承德市| 沅江市| 恩平市| 屏东市| 沙湾县| 河西区| 鄂伦春自治旗| 封丘县| 莱西市| 化德县| 南投市| 江安县| 汝阳县| 旬阳县| 承德县| 平山县| 太原市| 建昌县| 太仆寺旗|