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

首頁 > 數據庫 > Oracle > 正文

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

2024-08-29 13:57:36
字體:
來源:轉載
供稿:網友
正在看的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;

當前1/2頁 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 珲春市| 莒南县| 乐至县| 榆树市| 东至县| 武鸣县| 澄江县| 漳平市| 大安市| 错那县| 林口县| 龙陵县| 美姑县| 安福县| 凤庆县| 东港市| 松原市| 鄂托克前旗| 武安市| 新乡市| 桂平市| 怀集县| 舞阳县| 湘潭县| 三河市| 庆云县| 什邡市| 合阳县| 龙胜| 余干县| 杭州市| 璧山县| 长垣县| 扶绥县| 奉新县| 永平县| 彭泽县| 玉林市| 陇南市| 错那县| 涟源市|