1. 程式人生 > >Oracle儲存過程呼叫bat批處理指令碼程式

Oracle儲存過程呼叫bat批處理指令碼程式

        由於系統業務的複雜性,會經常用到Oracle資料的儲存過程,那些比較複雜的邏輯就寫在了儲存過程中。今天有遇到一個需求,是需要在儲存過程中呼叫windows系統上的bat批處理檔案,之前做的都是java進行呼叫 .bat 批處理指令碼程式,現在是需要在Oracle 的儲存過程中進行呼叫系統的 .bat 指令碼。第一感覺挺複雜了,後來完成了也就沒什麼了,挺簡單的。經驗教程記下來,後續如果需要使用的話,直接來找就可以了,當然也幫助了那些有同樣需要的同志們。

        1,首先要建立Java source

create or replace and compile java source named exesyscommand as
import java.io.*;
public class ExeSysCommand
{
  public static String ExeCmd(String cmd) {
        Process proc = null;
        int exitValue;
        try {
            System.out.println(cmd);
            proc = Runtime.getRuntime().exec(cmd);
            exitValue = proc.waitFor();
            if (exitValue == 0) {
               return "PASS";
            } else {
               return "FAIL";
            }
        } catch (Exception e) {
            return e.getMessage();
        }
    }
    public static void main(String[] args)
    {
        System.out.println("No command line arguments");
        System.out.println(ExeCmd("D:\\01_import.bat"));
        System.out.println("No command line arguments");
    }
}

        2,其後要建立函式呼叫該Java source

CREATE OR REPLACE FUNCTION ExeCmd(cmd STRING) RETURN VARCHAR2 IS --執行OS命令測試
  LANGUAGE JAVA NAME ' ExeSysCommand.ExeCmd(java.lang.String) return java.lang.String';
        3,DBA登入資料庫並授權資料庫的某一使用者
exec dbms_java.grant_permission( 'JYCRMX', 'SYS:java.io.FilePermission', 'D:\01_import.bat', 'execute');

exec dbms_java.grant_permission( 'JYCRMX', 'SYS:java.io.FilePermission', '<>', 'execute');
        4,自己寫一個簡單的.bat批處理檔案(本機放在D盤)
md d:\name777
exit
        5,開啟PL/SQL或者CMD控制檯下進行測試
select execmd('D:\run.bat') from dual; 
      最後,出來的結果是這樣的                OK,大功告成,接下來就是把這個自定義的函式給放到儲存過程中就完了。

相關推薦

Oracle儲存過程呼叫bat處理指令碼程式

        由於系統業務的複雜性,會經常用到Oracle資料的儲存過程,那些比較複雜的邏輯就寫在了儲存過程中。今天有遇到一個需求,是需要在儲存過程中呼叫windows系統上的bat批處理檔案,之前

Bat處理指令碼程式 延遲變數擴充套件和Call

原創 直接上指令碼吧,不難,但是有點饒頭。Bat東西說多不多,說不多也蠻多的,學個入門就差不多了,不想再深入了,能看懂會修改一點就可以了,比如編譯COCOS遊戲什麼的,批量複製個檔案啥的,看了兩三天,

bat處理指令碼呼叫oracle儲存過程,系統定時呼叫指令碼

編寫一個bat批處理指令碼呼叫oracle儲存過程,並設定系統定時完成該指令碼任務,有以下幾個步驟: 1. 先編寫一個call.sql檔案: set timing on; DECLARE o_UserID varchar2(20); BEGIN Packag

BAT 處理指令碼教程 BAT 處理指令碼教程 DOS的重定向命令及在安全方面的應用

BAT 批處理指令碼教程 第一章 批處理基礎第一節 常用批處理內部命令簡介批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT或者CMD。這些命令統稱批處理命令。小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過程。瞭解了大

bat處理指令碼入門

第一章 批處理基礎第一節 常用批處理內部命令簡介批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT或者CMD。這些命令統稱批處理命令。小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過程。瞭解了大概意思後,我們正式開始學習.先看一個

【最全的】BAT 處理指令碼教程

第一章 批處理基礎第一節 常用批處理內部命令簡介批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT或者CMD。這些命令統稱批處理命令。小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過程。瞭解了大概意思後

bat處理指令碼命令安裝解除安裝windows服務-InstallUtil.exe和sc命令

1、使用Visiual Studio安裝正常流程開發Window服務,增加服務安裝類,配置服務安裝屬性,服務名稱設定為TestSvr(可自行修改為其他名稱),編譯,如下: 2、安裝.net 框架後,根據服務使用的框架版本,將C:\WINDOWS\Microsoft.NET\Framew

oracle儲存過程,集合物件處理

我們在進行pl/sql程式設計時打交道最多的就是儲存過程了。儲存過程的結構是非常的簡單的,我們在這裡除了學習儲存過程的基本結構外,還會學習編寫儲存過程時相關的一些實用的知識。如:遊標的處理,異常的處理,集合的選擇等等 1.儲存過程結構  1.1 第一個儲存過程 Java程式碼  1.create

ORACLE儲存過程呼叫儲存過程時commit的問題

如程式碼中所寫,在儲存過程proc1中呼叫儲存過程proc2,如果在proc2中commit,則sql1中的DML操作會生效。 proc1 begin begin [sql1...] call proc2;----呼叫其他的儲存過程 exc

Windows BAT處理指令碼教程

第一章 批處理基礎 第一節 常用批處理內部命令簡介 批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT或者CMD。這些命令統稱批處理命令。 小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過

bat 處理指令碼 修改指定路徑czz檔案內容

 @echo off&setlocal enabledelayedexpansion set DestPath=.\ set TempPath=en.swh set madan=0 rem .doc set DestExt=*.ccz for /f "delim

BAT 處理指令碼教程

第一章 批處理基礎第一節 常用批處理內部命令簡介 批處理定義:顧名思義,批處理檔案是將一系列命令按一定的順序集合為一個可執行的文字檔案,其副檔名為BAT或者CMD。這些命令統稱批處理命令。 小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過程。 瞭解了

使用bat處理進行程式備份

@echo off rem 獲取當前資料夾的名字 set "lj=%~p0" set "lj=%lj:\= %" for %%a in (%lj%) do set wjj=%%a rem 建立一個版本的說明文件 cd.>README.txt rem 生

通過shell指令碼呼叫oracle儲存過程並加入定時任務

例項 檔名:add_tab_partitions.sh #!/bin/sh username='waep' password='czty_waep' sqlplus -S ${username}/

指令碼呼叫Oracle儲存過程

先準備好一個sql指令碼demo.sql set serveroutput on declare   v_name dept.dname%type; begin select dname into v_name from dept where deptno=&1;

windows下使用bat處理文件定時自動備份oracle數據庫並上傳ftp服務器

upd 使用 pup bye upload ora file ftp服務器 .bat 使用bat批處理文件備份oracle(前提是配置好oracle數據庫客戶端)在D盤目錄下創建個dbbackup目錄建個dbbak.bat @echo off echo ======

C#呼叫ORACLE儲存過程返回結果集

Oracle中scott使用者下建立儲存過程: (注:從9i開始有了sys_refcursor這種型別,在以前的Oracle版本中需要使用REF CURSOR,並且還需放在一個程式包中) create or replace procedure sp_getdept (result

windows處理指令碼bat命令解析【11】rd與del命令以及引數

命令:RD,刪除目錄  增加引數:/S  引數說明:使用此引數即“RD/S”用於刪除目錄樹,即刪除目錄及目錄下的所有子目錄和檔案,相當於以前版本中的DELTREE命令。  增加引數:/Q XP中的增強DOS命令  引數說明:使用上面的/S引數刪除目錄樹時,系統

windows處理指令碼bat命令解析【10】如何執行cmd命令

說來慚愧,感覺這個本來就不是問題。 先公佈答案: 你在cmd黑視窗下輸入什麼,就把這行命令寫入到bat指令碼中,九江。 前面和後面什麼也不用加。 比如,要在cmd下通過node執行某個hello.js檔案,命令為 node hello.js 那麼在bat指令碼中,只需要作如下

windows處理指令碼bat命令解析【9】SETLOCAL/ENDLOCAL

原文地址:https://blog.csdn.net/qq_33336155/article/details/53516976 Setlocal 與 Endlocal 命令 開始與終止批處理檔案中環境改動的本地化操作。在執行 Setlocal 之後所做的環境改動只限於批處理檔案。要還原原先的設定