Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Java процедура в Oracle (http://forum.oszone.net/showthread.php?t=261127)

veter48 23-05-2013 23:31 2155147

Java процедура в Oracle
 
Здравствуйте.
Нужно сделать 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 2155624

Цитата:

Цитата veter48
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");
}

Код на С#, но они с явой почти близнецы.


Время: 05:30.

Время: 05:30.
© OSzone.net 2001-