PDA

Показать полную графическую версию : Java процедура в Oracle


veter48
23-05-2013, 23:31
Здравствуйте.
Нужно сделать Java хранимую процедуру в Oracle.
Идея такая при вызове процедуры создаётся файл на жестком диске базы данных сервера и что то туда запасать.
1 Права на папку дал.
2 Создал процедуру:
create or replace and compile
java source named "logf"
as
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.sql.Timestamp;

public class JavaLogInfo {

public static void logData() {

String time = new Timestamp(System.currentTimeMillis()).toString();

try {
File file = new File ("C:/Logs/log.txt");
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write("time");
out.close();
} catch (IOException e) {
System.err.println("fail");
}
}
}
3 Сделал каркас:
CREATE OR REPLACE PROCEDURE logit
AS LANGUAGE JAVA
name 'JavaLogInfo.logData()';
4 Вызываю
Call logit()
Все successful, но файл не создаётся.
Подскажите, пожалуйста, в чем дело.

Delirium
24-05-2013, 17:32
File file = new File ("C:/Logs/log.txt"); »
А почему косые в другую сторону? Это раз. КОсые должны быть двойные C:\\Temp\\1.log. Это два. Также лучше использовать такой синтаксис:
using (StreamWriter wr = new StreamWriter("C:\\temp\\log.txt" ,false))
{
wr.WriteLine("text");
}
Код на С#, но они с явой почти близнецы.




© OSzone.net 2001-2012