Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Выгрузка файл на клиента  [new]
Nenormalka
Member

Откуда:
Сообщений: 97
День добрый!

Создала функцию, которая должна писать на клиента:

 
create or replace function WRITE_CLIENT2(file varchar2, data blob) return NUMBER as

language java name 'NetWrite.writeToFile(java.lang.String, java.sql.Blob) return java.lang.int';



create or replace and compile java source named write_to_client as
import java.io.*;
import java.sql.*;
public class NetWrite
{
  public static int writeToFile(String file, Blob data) throws Exception
  {
    FileOutputStream out = null;   
    File fileT;
    int i = 0;
    try {
          fileT = new File(file);
           out = new FileOutputStream(fileT);
           
           if (!fileT.exists()) {
				      fileT.createNewFile();
              i = 1;
			     }
           
           
          InputStream in = data.getBinaryStream();
        
          byte[] buff = new byte[16 * 1024]; 
          int       len = 0;

          while ((len = in.read(buff)) != -1) {
          
              out.write(buff, 0, len);
          }
          out.flush();
       
          
          in.close();
          out.close();
          
        } catch (IOException e) {
			       e.printStackTrace();
		} finally {
			try {  
  
				if (out != null) {         
					out.close();
				}    
			} catch (IOException e) {
				e.printStackTrace();
        i = -1;
			}
		}    
    
   return i; 
  }
}



Вызываю:

declare 
  bin_data blob;
  i NUMBER;
begin
  select ar.content into bin_data 
  from prapex.apex$archive_contents ar where ar.app_id = 103 and ar.version = 15;
  i := write_client2('C:\TEMP\f103.sql', bin_data);
end;



Гранты на запись я дала. В папке самой я тоже могу создавать файлы.
Код вообще ни на что не ругается, все шаги проходит, кроме создания файла. Но файл сам не создает!
То есть, сюда он не заходит, хотя папка пуста:

     if (!fileT.exists()) {
				      fileT.createNewFile();
              i = 1;
			     }


Связка Oracle и JAVA для меня в новинку. Так что помогите кто чем может!
26 дек 13, 12:13    [15349302]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
А то что код выполняется только на сервере Вас не смущает?
26 дек 13, 12:19    [15349364]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Nenormalka
Member

Откуда:
Сообщений: 97
Mit,

Почему на сервере? Java же должна на клиенте выполняться?
26 дек 13, 12:27    [15349398]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
как же она должна выполняться на клиенте если Вы создали ее на сервере через в обертку в виде серверной функции?:)
26 дек 13, 12:35    [15349444]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Nenormalka
Member

Откуда:
Сообщений: 97
Mit, Да теперь понимаю...

А как сделать на клиента выгрузку, но нужно чтобы она была автоматическая и периодичная? ( у нас есть апекс)
26 дек 13, 12:40    [15349479]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
На сервере расшарьте папку и в нее кладите свою выгрузку.
26 дек 13, 12:45    [15349505]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
Nenormalka,
Спасение утопающих - дело рук самих утопающих, в смысле клиентов :)
26 дек 13, 12:45    [15349509]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
через джоб.
26 дек 13, 12:46    [15349514]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
-2-
Member

Откуда:
Сообщений: 15330
Nenormalka
А как сделать на клиента выгрузку, но нужно чтобы она была автоматическая и периодичная? ( у нас есть апекс)
Создать задание на клиенте, выполняющее клиентскую программу.
26 дек 13, 12:50    [15349544]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Nenormalka
Member

Откуда:
Сообщений: 97
-2-,

Клиентскую программу я врядли смогу так запускать, прав могут админы мне не дать.
26 дек 13, 12:54    [15349565]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
_мод
Guest
Nenormalka
Почему на сервере? Java же должна на клиенте выполняться?

WEBUTIL вам в помощь
26 дек 13, 12:55    [15349581]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Nenormalka
Member

Откуда:
Сообщений: 97
Mit, Через джоб , на сервер это понятно, но как с него потом автоматически перекидывать на нужный мне комп?

И по поводу сервера:
  write_client2('/tmp/f103.sql', bin_data); 


Выполнила сейчас вот такое, на серваке не нашла:)
26 дек 13, 12:56    [15349586]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
-2-
Member

Откуда:
Сообщений: 15330
Nenormalka
Клиентскую программу я врядли смогу так запускать, прав могут админы мне не дать.
На сервер ты с самого сервера заходишь?
26 дек 13, 12:57    [15349599]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
_мод
Guest
_мод
Nenormalka
Почему на сервере? Java же должна на клиенте выполняться?

WEBUTIL вам в помощь

упс. Извините, это только для forms
26 дек 13, 12:57    [15349601]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
Nenormalka
Member

Откуда:
Сообщений: 97
-2-, скорей всего нет, но надо у админа уточнить ( он смотрел, на самом деле). У удаленно в какой- то папке на сервере или на ftp-сервере я могу сохранить, чтобы увидеть этот файл?
26 дек 13, 13:04    [15349651]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
-2-
На сервер ты с самого сервера заходишь?

Nenormalka
надо у админа уточнить

Т.е. Вы не отличаете, зашли Вы в серверную и сели за консоль сервера или зашли в кабинет и сели за персоналку и снее уже подцепились к серверу?
26 дек 13, 13:47    [15349966]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файл на клиента  [new]
-2-
Member

Откуда:
Сообщений: 15330
Nenormalka,

С клиента sqlplus, Oracle SQL Developer со скриптом выгрузки в файл или тот самый java-класс - ставишь выполняться в task scheduler, cron или что там в зависимости от ос клиента.
26 дек 13, 13:48    [15349969]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить