Вход / Регистрация


Вход на сайт:
Логин: 
Пароль: 


Впервые здесь?
 
Регистрация [?]:
Регистрация у нас позволит:
  • Покупать платные продукты из каталога и иметь к ним доступ в любое время
  • Задавать вопросы другим людям, участвовать в дискуссиях
  • Публиковать свои расширения, программы и софт, если Вы разработчик или дистрибьютор
  • Добавлять интересные ссылки и иметь к ним доступ из любой точки, где есть выход в Интернет
  • Следить за обновлениями сервиса и получать дополнительные возможности, которых не имеют обычные гости
  • Следить за новыми статьями и получать новые знания
Выберите логин:
Ваш Email:
Введите результат выполнения операции (цифрами):
16 - 9 = ? Обновить

JAVA в Oracle
Управление Java-объектами схемы базы данных Oracle PDF Печать E-mail
Автор: Максим   
16.06.2009 12:17
Понравилось:
5


Не понравилось: 2
Недоступен ни один перевод.

Данная статья является переводом части 2-й главы руководства "Oracle8i Java Stored Procedures Developer's Guide Release 2 (8.1.6)", размещенного здесь

 

Для управления Java-объектами схемы используются утилиты командной строки loadjava и dropjava. Можно писать, компилировать и частично тестировать и отлаживать хранимые Java-процедуры на стороне клиента в известных IDE для разработки Java-программ. Затем можно использовать loadjava для загрузки исходного кода Java, Java-классов и файлов ресурсов в базу данных Oracle в качестве объектов схемы. В дополнение к этому, можно использовать утилиту dropjava для удаления исходного кода Java, Java-классов и файлов ресурсов из схемы базы данных.

Обновлено 02.12.2011 08:58
Подробнее...
 
Рекомпиляция 'INVALID' Java-классов в Oracle PDF Печать E-mail
Автор: Максим   
10.06.2009 17:06
Понравилось:
1


Не понравилось: 0
Недоступен ни один перевод.

Для выявления Java-классов, ставших по каким-то причинам невалидными и автоматической рекомпиляции этих классов можно использовать следующий подход:

  1. Объявляем курсор, который по очереди выбирает из таблицы DBA_OBJECTS имена невалидных классов (при необходимости в конструкции SELECT можно также указать имя пользователя, для которого мы хотим узнать список невалидных классов. Для этого достаточно добавить в часть WHERE условие: AND OWNER='<имя пользователя>'. Например, если нужно узнать список невалидных классов только в схеме SYS, добавляем AND OWNER='SYS');
  2. Динамически выполняем конструкцию вида 'ALTER JAVA CLASS "' || <имя текущего выбранного невалидного класса> || '" COMPILE';
Обновлено 02.12.2011 09:03
Подробнее...
 
Автоматическое удаление JAVA классов со статусом 'INVALID' в Oracle PDF Печать E-mail
Автор: Максим   
10.06.2009 10:44
Понравилось:
0


Не понравилось: 0
Недоступен ни один перевод.

Сегодня столкнулся с интересной задачей. Есть две базы данных Oracle (10.2.0.4), скажем DB1 и DB2, в каждой из которых есть некоторое количество инвалидных классов в схеме SYS. В одной базе около 300 инвалидных классов (DB1), но она в рабоспособном состоянии, в другой (DB2) есть 1700 инвалидных классов, некотрые из которых начали конфликтовать друг с другом. Встал вопрос удаления 1400 инвалидных классов из базы DB2 для приведения ее к виду базы DB1. Удалять классы вручную - полный ад, поэтому возникла мысль написания PL/SQL скрипта, автоматизирующего данную задачу. Сделал DBLINK в базе DB2 к базе DB1 и назвал его DB1LNK. Написал скрипт, который решает задачу удаления 1400 классов со статусом 'INVALID':


	DECLARE

	    CURSOR CUR IS

	    SELECT AO_LOCAL.OBJECT_NAME NAM

	    FROM   ALL_OBJECTS AO_LOCAL

	    WHERE  AO_LOCAL.OBJECT_TYPE = 'JAVA CLASS' AND

	           AO_LOCAL.STATUS = 'INVALID' AND

	           AO_LOCAL.OWNER = 'SYS' AND

	           DBMS_JAVA.LONGNAME(AO_LOCAL.OBJECT_NAME) NOT IN (

	             SELECT DBMS_JAVA.LONGNAME(AO_REMOTE.OBJECT_NAME) NAM_REM

	             FROM   ALL_OBJECTS@DB1LNK AO_REMOTE

	             WHERE  AO_REMOTE.OBJECT_TYPE = 'JAVA CLASS'AND

	                    AO_REMOTE.STATUS = 'INVALID'AND

	                    AO_REMOTE.OWNER = 'SYS'

	            );

	

	 

	    CLASS_NAME VARCHAR2(1024);

	BEGIN

	    OPEN CUR;

	    DBMS_OUTPUT.ENABLE(10000);

	

	    LOOP

	        FETCH CUR INTO CLASS_NAME;

	        EXIT WHEN CUR%NOTFOUND;

	        DBMS_OUTPUT.PUT_LINE(CLASS_NAME);

	

	        EXECUTE IMMEDIATE 'DROP JAVA CLASS SYS. ' || '"' || CLASS_NAME || '"';

	

	    END LOOP;

	

	    CLOSE CUR;

	END;

	

Скрипт отрабатывал долго, но верно

Обновлено 02.12.2011 09:04
 


Нашли ошибку?

Система Orphus

Оплата на сайте

Яндекс.Деньги
www.megastock.ru
Здесь находится аттестат нашего WM идентификатора 207935874510
Проверить аттестат

Статистика сайта

Яндекс.Метрика

Мы в Интернете


Allineed.Ru © 2009-2012 - Allineed.Ru - ответы на IT вопросы, статьи о разработке, IT и программном обеспечении. При использовании материалов сайта ссылка обязательна. Использование данного сайта и любой его части означает принятие условий Пользовательского Соглашения.
Allineed.Ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters. The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.