powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос java классов из одной быза в другую.
5 сообщений из 5, страница 1 из 1
Перенос java классов из одной быза в другую.
    #34057157
utyf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно перенести 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
Перенос java классов из одной быза в другую.
    #34057194
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если gthвый запрос показал объекты типа JAVA SOURCE, то это исходники, JAVA
CLASS - уже байт-код.

http://www.sql.ru/forum/actualthread.aspx?tid=289416#2630749
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Перенос java классов из одной быза в другую.
    #34057214
utyf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас изучаю dbms_java.export_class
может у кого-нибудь уже есть готовые скрипты переноса (или экспорта) нужных классов?
Кстати вопрос, а можно ли это сделать при помощи exp/imp?
...
Рейтинг: 0 / 0
Перенос java классов из одной быза в другую.
    #34057425
utyf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот написал процедуру выгрузки необходимых 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
Период между сообщениями больше года.
Перенос java классов из одной быза в другую.
    #39498273
PsyDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дабы не плодить тем
1)можно как то получить зависимости имея java source?
2)или как то по ходу преобразовать java source -> java class?
3)Правильно ли я понимаю, что имея java class я могу поднять точную цепочку зависимостей и перенести всё это богатство в другую базу?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос java классов из одной быза в другую.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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