Как в PL/SQL определить дату время создания внешнего файла
От: bo_  
Дата: 17.09.04 15:31
Оценка:
Помогите чайнику, вопрос следующий, неоходимо получить дату создания файла лежащего в сети средствами Oracle. После того как ознакомился с предметом, понял, что надо делать это с помощью Java класса, других вариантов как я понимаю вроде нет. Попробовал, если файл лежит локально, то это работает, если на выделенном ресурсе в сети, то нет! По крайней мере у меня не получается. Прошу пояснить, возможно ли получить lastModified файла лежащего на сетевом диске? Может это нельзя сделать, и надо искать другие решения. Хотя наверно все ж таки можно, потому что если класс выполнять не в среде оракла, то дату файла в сети все же я могу получить, а вот из оракла почему то не получается.

делаю это следующим образом..

create or replace and compile java source named filedate as
import java.io.*;
import java.sql.*;

public class filedate
{
  public static void getFile(java.lang.String path) throws SQLException
  {
       java.io.File f = new File( path );
         if (!f.exists())
         {
            return;
         }
         System.out.println(new java.sql.Timestamp(f.lastModified()).toString());
  }
}


Далее создаю процедуру, которая в свою очередь использует Java класс

CREATE OR REPLACE PROCEDURE GET_FILE_DATE(FILENAME VARCHAR2)
AS LANGUAGE JAVA
NAME 'filedate.getFile(java.lang.String)';


Предоставляю грант пользователю
exec dbms_java.grant_permission( 'USERNAME', 'SYS:java.io.FilePermission', '\\compname\directory\*', 'read' );


Ну уже дал и такие привилегии как..
grant javasyspriv to USERNAME;
grant javauserpriv to USERNAME;


... может есть какие нить мысли по этому поводу?

С уважением..
Re: Как в PL/SQL определить дату время создания внешнего фай
От: wildwind Россия  
Дата: 17.09.04 15:40
Оценка:
Здравствуйте, bo_, Вы писали:

bo_>... может есть какие нить мысли по этому поводу?


Есть такая мысль: получать дату создания файла лежащего в сети, надо НЕ средствами Oracle, а другими, более подходящими.
Re[2]: Как в PL/SQL определить дату время создания внешнего
От: bo_  
Дата: 17.09.04 15:48
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, bo_, Вы писали:


bo_>>... может есть какие нить мысли по этому поводу?


W>Есть такая мысль: получать дату создания файла лежащего в сети, надо НЕ средствами Oracle, а другими, более подходящими.


Хех, придется, но это по моему такой гемор.. в MSSQL я это делал с помощью дтс вобщем то довольно легко, а тут даже не знаю.. за что схватиться! Просто это такая работа, много раз в сутки проверять дату, по условию выбирать данные, и добавлять эту же дату в новую запись.. ну короче, обычный job, и хотелось бы это решить средствами оракла, неужели нет решения, а почему этот класс не в среде оракла номально выполняется? То есть возвращает то что мне надо?

С уважением...
Re[2]: Как в PL/SQL определить дату время создания внешнего
От: bo_  
Дата: 17.09.04 16:02
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, bo_, Вы писали:


bo_>>... может есть какие нить мысли по этому поводу?


W>Есть такая мысль: получать дату создания файла лежащего в сети, надо НЕ средствами Oracle, а другими, более подходящими.


Неужели это мысль окончательная и бесповоротная! Как грустно делается1


С уважением..
Re[3]: Как в PL/SQL определить дату время создания внешнего
От: wildwind Россия  
Дата: 17.09.04 16:34
Оценка:
Здравствуйте, bo_, Вы писали:

bo_>Просто это такая работа, много раз в сутки проверять дату, по условию выбирать данные, и добавлять эту же дату в новую запись.. ну короче, обычный job


Похоже что это работа не для оракла, а для клиентского приложения.

bo_>а почему этот класс не в среде оракла номально выполняется? То есть возвращает то что мне надо?


Возможно не хватает каких-то прав. А может быть dbms_java.grant_permission не понимает UNC путей.
Re[3]: Как в PL/SQL определить дату время создания внешнего
От: Sergey Ten http://www.fastalgo.com
Дата: 18.09.04 11:47
Оценка:
Здравствуйте, bo_, Вы писали:

bo_>Неужели это мысль окончательная и бесповоротная! Как грустно делается1


Напиши процедуру на С и вызывай из PL/SQL:
http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10795/adfns_ex.htm#1018257
Re[4]: Как в PL/SQL определить дату время создания внешнего
От: Denis_TST Россия www.transsys.ru
Дата: 19.09.04 17:48
Оценка:
Здравствуйте, Sergey Ten, Вы писали:


ST>Напиши процедуру на С и вызывай из PL/SQL:

ST>http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10795/adfns_ex.htm#1018257
..Или внешнюю программу на java которая будет читать данные, а общаться с ней через
dbms_pipe из сессии...
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.