Как можно запустить файл из PL\SQL&&??

 
0
 
Oracle
ava
Marriage | 04.11.2005, 11:44
Собственно ..
Есть функция в PL\SQL
Можно ли как нить запустить файл (EXE,DOC,SQL, в общем любой )
Comments (6)
ava
LSD | 04.11.2005, 12:15 #
Можно написать хранимую процедуру на Java которая сможет выполнить команду ОС. Что нибудь наподобие:
create or replace and compile java source named server_exec as

import java.io.IOException;
import java.io.InputStream;

public class Exec
{
public static int exec(String cmd) throws IOException, InterruptedException
{
Process proc = Runtime.getRuntime().exec(cmd);
new Streamer(proc.getInputStream()).start();
new Streamer(proc.getErrorStream()).start();
return proc.waitFor();
}

private static class Streamer extends Thread
{
private InputStream in;

public Streamer(InputStream in)
{
this.in = in;
}

public void run()
{
byte[] buffer = new byte[1024];
try
{
while(in.read(buffer) != -1)
{}
}
catch(IOException e)
{}
}
}
}
/


create or replace function EXEC(command varchar2) return number as
language java name 'Exec.exec(java.lang.String) return int';
ava
Marriage | 04.11.2005, 13:23 #
LSD
А проще никак ...
Может быть есть какой-нить DBMS_........
????
ava
LSD | 05.11.2005, 14:29 #
Нет, можешь еще глянуть "У Тома".
ava
Vladelot | 23.11.2005, 09:12 #
А можешь сделать через пайп и написанную тобой службу которая слушает пайп и запускает то что тебе нужно
ava
LSD | 23.11.2005, 10:11 #
Цитата (Vladelot @ 23.11.2005, 09:12)
А можешь сделать через пайп и написанную тобой службу которая слушает пайп и запускает то что тебе нужно

А примерчик, накидать можешь?
ava
Vladelot | 23.11.2005, 18:54 #
to LSD
без б. тока домой приеду...а приезжаю я в понедельник...
а пока по памяти могу сказать только это:
работаешь с пакетом DBMS_PIPE.
схема такая ...создаешь пайп в pl/sql процедуре функции что нравится...
далее в этот пайп в тойже процедуре запихиваешь путь и имя файла...(c:\far.exe)
ставишь таймау максимальный...там чтото типа 3 года максимум.
а в это время написанная нами ранее програмка на той же дельфе работает как служба и прослушивает этот пайп с помощью того же dbms_pipe и как только мы передаем название файла в процедуре оракла....служба подхватывает это название и запускает по указанному пути нужный нам файл...для примера "c:\far.exe"...код могу выложить по приезду домой.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
ava  LSD   Marriage   Vladelot
advanced
Submit