Login / Sign Up


Enter site:
Login: 
Password: 


First time here?
 
Register [?]:
Registering allows you:
  • Purchase products from the product catalog and access them any time.
  • Ask questions to another specialists in IT
  • Publish your own Joomla extensions, soft or other products if you are developer or distributor
  • Add interesting weblinks and access them from any place
  • Watch the updates of the site and have special abilities that guests don't have
  • Watch the news of the service and new articles and get knowledge
Choose login:
Your Email:
Enter the result of operation (in digits):
24 + 6 = ? Update

Using Java In Oracle
Управление Java-объектами схемы базы данных Oracle PDF Print E-mail
Written by Максим   
Tuesday, 16 June 2009 12:17
Liked:
5


Did not like: 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-классов и файлов ресурсов из схемы базы данных.

Last Updated on Friday, 02 December 2011 08:58
Read more...
 
Рекомпиляция 'INVALID' Java-классов в Oracle PDF Print E-mail
Written by Максим   
Wednesday, 10 June 2009 17:06
Liked:
1


Did not like: 0

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

  1. Объявляем курсор, который по очереди выбирает из таблицы DBA_OBJECTS имена невалидных классов (при необходимости в конструкции SELECT можно также указать имя пользователя, для которого мы хотим узнать список невалидных классов. Для этого достаточно добавить в часть WHERE условие: AND OWNER='<имя пользователя>'. Например, если нужно узнать список невалидных классов только в схеме SYS, добавляем AND OWNER='SYS');
  2. Динамически выполняем конструкцию вида 'ALTER JAVA CLASS "' || <имя текущего выбранного невалидного класса> || '" COMPILE';
Last Updated on Friday, 02 December 2011 09:03
Read more...
 
Автоматическое удаление JAVA классов со статусом 'INVALID' в Oracle PDF Print E-mail
Written by Максим   
Wednesday, 10 June 2009 10:44
Liked:
0


Did not like: 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;

	

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

Last Updated on Friday, 02 December 2011 09:04
 


Found Error?

Система Orphus

Site Statistics

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

Our Pages


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.