Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Не удаляется ранее загруженная Java-библотека. (Ошибка: ORA-29537: класс или ресурс не могут быть созданы)

#java #sql #oracle #oracle11g


С помощью утилиты командной строки loadjava была загружена JAVA-библиотека в БД.
Команда с параметрами:

loadjava -jarsasdbobjects -resolve -verbose -thin -user login/pass@host:port:SID
"sqljdbc.jar"


Теперь я пытаюсь удалить эту библиотеку следующим образом:

dropjava -jarsasdbobjects -resolve -verbose -thin -user login/pass@host:port:SID
"sqljdbc.jar"


На что я получаю ошибку: 

dropping: class com/microsoft/sqlserver/jdbc/ActivityCorrelator
Error while dropping com/microsoft/sqlserver/jdbc/ActivityCorrelator
    ORA-29537: класс или ресурс не могут быть созданы или удалены напрямую


И так для каждого класса в этой библиотеке. 

Пробовал удалять с помощью dbms_java.dropjava() и через drop java class, но ошибка
была всё та же.

Нужно сказать, что библиотека, загруженная без параметра -jarsasdbobjects, удалялась
без проблем. 

Как мне правильно удалить библиотеку?
    


Ответы

Ответ 1



TL;DR: Полное сообщение об ошибке: $ oerr ora 29537 29537, 00000, "class or resource cannot be created or dropped directly" // *Cause: An attempt was made to create or drop a Java class or resource that // is known to result from compilation of an existing Java source object. // *Action: Act on the class or resource by acting on the source, or change // the source so that it no longer defines the class or resource. Нельзя создать или удалить Java класс, который является результатом компиляции уже существующего Java объекта с исходным кодом (object_type='JAVA SOURCE'). Простейший воиспроизводимый пример: $ echo "public class SomeClass { }" >SomeClass.java $ javac SomeClass.java $ jar -cvf SomeClass.jar SomeClass.class $ connstr="user/pass@dbserver/sevice" $ loadjava -u $connstr -r -v SomeClass.jar resolving: class SomeClass Classes Loaded: 1 $ dropjava -u $connstr -v SomeClass.jar dropping: class SomeClass Пока всё хорошо, но после: $ sqlplus -l -s $connstr <<+++ create or replace and compile java source named SomeClass as $(

Комментариев нет:

Отправить комментарий