Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка Java класса, ORACLE 10g 
:(
    Опции темы
neutrino
Дата 14.11.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Приветствую!

Необходимо загрузить java класс в базу.

Вот класс:
Код


/**
 * 
 * @author gregory
 */
public class HebrewInversion
{
    private static boolean isHebrewLetter(char c)
    {    
        return ((char)0x05D0 < c && c < (char)0x05F4);
    }
    
    private static String reverse(String s, int begin, int end)
    {
        String result = new String();

        for (int iter = begin; iter < end; iter++)
        {
            result = s.charAt(iter) + result;
        }
        
        return result;
    }
    
    // And what if we need to reverse some words delimited by spaces?
    // Are spaces must be reversed too? In whose cases? 
    public  static String toLogical(String s)
    {
        int hebStart = -1;
        int hebEnd = -1; 

        String resultString = new String();
        String subStr;

        for (int iter = 0; iter < s.length(); iter++)
        {
            if (isHebrewLetter(s.charAt(iter)))
            {
                if (hebStart >= 0) hebEnd = iter;
                else hebStart = iter;
            } else {
                if (hebStart >= 0)
                {
                    hebEnd = iter;
                    subStr = reverse(s, hebStart, hebEnd);
                    resultString += subStr;
                    hebStart = -1;
                }
                resultString += s.charAt(iter);
            }
        }
        return resultString;
    }
}


Я запускаю следующее:
Код

javac HebrewInversion.java
loadjava -user username/password@sid -verbose HebrewInversion.class

arguments: '-user' 'username/password@sid' '-verbose' 'HebrewInversion.class'
creating : class HebrewInversion
loading  : class HebrewInversion
Classes Loaded: 1
Resources Loaded: 0
Sources Loaded: 0
Published Interfaces: 0
Classes generated: 0
Classes skipped: 0
Synonyms Created: 0
Errors: 0


Теперь публикация метода:
Код

SQL> CONN username/password@sid
Connected.

SQL> CREATE FUNCTION invertHebrew(s IN VARCHAR2) RETURN VARCHAR2
  2  AS LANGUAGE JAVA
  3  NAME 'HebrewInversion.toLogical(java.lang.String) return java.lang.String';

Function created.


Но когда я запускаю функцию, получаю ошибку:
Код

SQL> VARIABLE test VARCHAR2;
SQL> CALL invertHebrew('AAAירוגרגBBB') INTO :test;
CALL invertHebrew('AAAירוגרגBBB') INTO :test;
     *
ERROR at line 1:
ORA-29541: class username.HebrewInversion could not be resolved


Я проверил содержимое DBA_JAVA_CLASSES and DBA_JAVA_METHODS и класс с методами там присутствует. В чем может быть проблема?



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
LSD
Дата 14.11.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



А вызываешь ты от того же пользователя, от которого создавал функцию и грузил класс?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
neutrino
Дата 14.11.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Цитата(LSD @  14.11.2006,  12:05 Найти цитируемый пост)
А вызываешь ты от того же пользователя, от которого создавал функцию и грузил класс? 

Да.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
LSD
Дата 16.11.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Попробуй загрузить класс так:
Код
create or replace and compile java source named hebrew_inversion as
public class HebrewInversion
{
...



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
neutrino
Дата 22.11.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Сглючил. Одну скобку забыл, ту, что класс закрывает smile
Не понимаю как он откомпилировался. Или нет?

Спасибо за помощь.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
LSD
Дата 22.11.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(neutrino @ 22.11.2006,  16:57)
Сглючил. Одну скобку забыл, ту, что класс закрывает smile
Не понимаю как он откомпилировался. Или нет?

Ты о моем коде или о своем?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
neutrino
Дата 26.11.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



О своем.  smile 


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
LSD
Дата 26.11.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Ну тогда бы тебе javac выругался бы, да loadjava тоже бы не загрузил класс, а судя по логу он это сделал. Скорее всего ты просто сюда его скопировал неправильно. Код я проверял он работает и вызывается.

Попробуй еще сделать так:
Код
ALTER JAVA CLASS "HebrewInversion" RESOLVE



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
jsa
Дата 27.11.2006, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 1
Всего: 20



Цитата(LSD @ 26.11.2006,  14:32)
Попробуй еще сделать так:
Код
ALTER JAVA CLASS "HebrewInversion" RESOLVE

Что это дает? (ради просвещения  smile , может когда и пригодиться, а то тут тоже на днях занимался написанием одного класса в базе)


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
LSD
Дата 27.11.2006, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата
RESOLVE and COMPILE are synonymous keywords. They let you specify that Oracle Database should attempt to resolve the primary Java class schema object.
  • When applied to a class, resolution of referenced names to other class schema objects occurs.
  • When applied to a source, source compilation occurs.

т.е. для скомпилированного класса Oracle дожен проверить что все классы от которых зависит данный доступны.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
neutrino
Дата 5.12.2006, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Цитата(LSD @  26.11.2006,  13:32 Найти цитируемый пост)
Попробуй еще сделать так:

ALTER JAVA CLASS "HebrewInversion" RESOLVE


Java altered.

Я уже начал все эти классы в Eclipse писать и проверять. Потом компилилрую и в базу. А есть какой-нибудь "родной" способ?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
LSD
Дата 5.12.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Почитай тут.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.