Базы данных Oracle - статьи


Oracleinfsec.shtml - часть 15


-- Сейчас проверим существование файла

lob_loc:=bfilename('HACKDIR',filename);

if (DBMS_LOB.FILEEXISTS(Lob_loc)!= 0) then dbms_output.put_line('File exists'); else dbms_output.put_line('File does not exist'); end if;

end;

-- -- Просмотр заданного файла -- Это очень простая демонстрационная программа. Форматирование файла не сохраняется. --

procedure browse(filename varchar2, dir varchar2) as Lob_loc bfile; Buffer RAW(128); Amount BINARY_INTEGER := 128; Position INTEGER := 1; begin dbms_output.enable(1000000); dbms_output.put_line('Display file:'filename); dbms_output.put_line('Directory: 'dir);

-- Сначала мы должны создать каталог

declare begin execute immediate ('create or replace directory hackdir as '''dir''''); exception when others then dbms_output.put_line('Directory creation failed'sqlerrm); return; end;

-- Сейчас проверим существование файла

lob_loc:=bfilename('HACKDIR',filename);

if (DBMS_LOB.FILEEXISTS(Lob_loc)!= 0) then

declare begin --открыть файл для чтения

DBMS_LOB.OPEN(Lob_loc, DBMS_LOB.LOB_READONLY);

--вывести содержимое файла

LOOP DBMS_LOB.READ(Lob_loc, Amount, Position, Buffer); dbms_output.put_line(UTL_RAW.CAST_TO_VARCHAR2(Buffer)); Position := Position + Amount; END LOOP;

-- закрыть файл и выдать диагностику

DBMS_LOB.CLOSE(Lob_loc); exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('**End of Data**'); end;

else dbms_output.put_line('File does not exist'); end if; end; end;

A.2 JExecute.java

Эта программа используется для демонстрации выполнения произвольных команд с помощью Java, компиляция выполняется следующим образом:

javac jexecute.java для загрузки используйте: loadjava jexecute.class -user /

// JExecute.java // // (c) 2001, Oracle Corporation // // Author: Bridesmaid (Howard Smith) // // Простой демонстрационный класс, который может // выполнять программу, передаваемую как параметр.

import java.io.*;

public class JExecute { public static String JExec(String command) { try { Process child = Runtime.getRuntime().exec(command); InputStream childout = child.getInputStream(); InputStreamReader r = new InputStreamReader(childout); BufferedReader in = new BufferedReader(r); String line; String output; output = ""; while((line = in.readLine()) != null) output = output + line + "\n"; if (child.waitFor() != 0) output = "Execute failed with exit code:" + child.exitValue(); return (output); } catch (Exception e) { return("Execute failed with exception:" + e.toString()); } } }




Начало  Назад  Вперед