08.11.2024 12:50
Иногда требуется выполнить команду операционной системы из базы. Сделать это можно с помощью Java, для этого, понятное дело, ее нужно установить.
А код класса для выполнения несложный, он ниже:

SQL код:
create or replace and compile java source named USER."OSCommandHelper" as
import java.io.*;
/* Вспомогательный java-класс для выполнения команды ОС */
    public class OSCommandHelper {
        public static void executeOSCommand (String Command) {
            try {
                final Process pr = Runtime.getRuntime().exec(Command);
                pr.waitFor();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    } 
Не забудьте проработать вопросы безопасности...
08.11.2024 13:00
Пример использования этой процедуры для убийства процесса базы.

SQL код:
procedure kill_process ( in_sid in number, in_serial in number) is
        nSPid   v$process.spid%TYPE := 0;
        nSerial v$session.serial#%TYPE := in_serial;
    begin
        if (in_serial IS NULL) then
            select serial# into nSerial from v$session where sid = in_sid;
        end if; 
        select B.spid into nSPid
          from v$session A join v$process B on (A.paddr = B.addr)
         where A.sid = in_sid and A.serial# = nSerial;
        executeOSCommand ('kill -9 ' || nSPid);
    end kill_process; 
Часовой пояс GMT +3, время: 12:12.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.