Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос java классов из одной быза в другую. / 5 сообщений из 5, страница 1 из 1
16.10.2006, 13:59
    #34057157
utyf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос java классов из одной быза в другую.
Нужно перенести java классы из одной базы в другую.
Запросом
Код: plaintext
1.
2.
3.
4.
5.
select object_name,
       dbms_java.longname( object_name),
       object_type ,count(*)over() from all_objects 
       where object_type like 'JAVA%' and 
       dbms_java.longname( object_name) like '%my%'
Я выбираю какие классы мне нужно перенести, а что дальше?
Попробывал выполнить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
DECLARE
    b CLOB;
    v VARCHAR2( 4000 );
    i INTEGER :=  4000 ;
BEGIN
    DBMS_LOB.CREATETEMPORARY(b, FALSE);
    DBMS_JAVA.EXPORT_SOURCE('myjclass', b);
    DBMS_LOB.READ(b, i,  1 , v);
    DBMS_OUTPUT.PUT_LINE(v);
END;
Выдает ошибку, что нет такого класса. Класс такой точно есть, и есть подозрения, что он загружен из jar файла. Так же посмотрел, что время создания и время последнего изменения существенно отличаются (получается что обновляли).
...
Рейтинг: 0 / 0
16.10.2006, 14:06
    #34057194
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос java классов из одной быза в другую.
Если gthвый запрос показал объекты типа JAVA SOURCE, то это исходники, JAVA
CLASS - уже байт-код.

http://www.sql.ru/forum/actualthread.aspx?tid=289416#2630749
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
16.10.2006, 14:10
    #34057214
utyf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос java классов из одной быза в другую.
сейчас изучаю dbms_java.export_class
может у кого-нибудь уже есть готовые скрипты переноса (или экспорта) нужных классов?
Кстати вопрос, а можно ли это сделать при помощи exp/imp?
...
Рейтинг: 0 / 0
16.10.2006, 15:17
    #34057425
utyf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос java классов из одной быза в другую.
Вот написал процедуру выгрузки необходимых java-классов. Может кому понадобиться. У меня все работает. Осталось написать скрипт для импорта.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
declare
  v_dir_name varchar2( 4000 )  := '/home/oracle/java_exp'; --папка в которую выгружаем
  v_owner_name varchar2( 4000 )  := 'TEST'; -- владелец классов
  v_amount binary_integer :=  32767 ;
  v_file_name varchar2( 4000 );
  v_class_name varchar2( 4000 );
  v_blob blob;
  v_blob_len integer;
  v_pos integer;
  v_buffer raw ( 32767 );
  out_file utl_file.file_type;
begin
  for cur in (
    select object_name
    from dba_objects 
    where object_type = 'JAVA CLASS' and owner = v_owner_name
      and dbms_java.longname(object_name) like '%my%' --доп условие, чтобы не тащить все классы
  )
  loop
      --получаем нормальные имена класса и файла
      v_class_name := dbms_java.longname(cur.object_name);
      v_file_name := REPLACE(v_class_name,'/','.');
      -- экспортируем байт-код
      dbms_lob.createTemporary(v_blob, true, dbms_lob.SESSION);
      dbms_java.export_class(v_class_name, 'IB', v_blob);
      -- Пишем в новый файл
      out_file := utl_file.fopen(v_dir_name, v_file_name, 'w',  32760 );
      v_blob_len := dbms_lob.getLength (v_blob);
      v_pos :=  1 ;
      while v_pos < v_blob_len loop
        dbms_lob.read(v_blob, v_amount, v_pos, v_buffer);
        utl_file.put_raw (out_file, v_buffer, true);
        v_pos := v_pos + v_amount;
      end loop;
      utl_file.fClose(out_file);
  end loop;
end;
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
01.08.2017, 11:44
    #39498273
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос java классов из одной быза в другую.
дабы не плодить тем
1)можно как то получить зависимости имея java source?
2)или как то по ходу преобразовать java source -> java class?
3)Правильно ли я понимаю, что имея java class я могу поднять точную цепочку зависимостей и перенести всё это богатство в другую базу?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос java классов из одной быза в другую. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]