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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить то что возвращает 
:(
    Опции темы
AlexMix
Дата 20.7.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.6.2006

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



 как получить то что возвращает функция 

Процедура

Код

PROCEDURE coun_us 
IS
c_us varchar2(50);
BEGIN
c_us :=  coun_user;
EXECUTE IMMEDIATE 'SELECT '||c_us||' as count FROM DUAL';
END;


Код

CallableStatement cst1 = connection.prepareCall("{CALL ALEX_PROCESSING.coun_user}");
String str =  cst1.getString("count");
req.setAttribute("kol", str);


Ошибка 
java.sql.SQLException: Не поддерживаемая функция


Спасибо   

Это сообщение отредактировал(а) AlexMix - 20.7.2006, 15:39
PM MAIL   Вверх
w1nd
Дата 20.7.2006, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



Oracle? У вас неправильно написана процедура - она ничего не возвращает. Следует объявить возвращаемый параметр и писать в него.   

Это сообщение отредактировал(а) w1nd - 20.7.2006, 22:50


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
AlexMix
Дата 21.7.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.6.2006

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



Переписал процедуру 


Код

PROCEDURE coun_us  (co_us OUT varchar2)
IS
BEGIN
co_us :=  alex_processing.coun_user;
END;


что бы ее запустить в PL/SQL DEve пишу 

Код

declare 
ttt varchar2(10);
begin
 alex_processing.coun_us(ttt);
dbms_output.put_line(ttt);
end;


работает 

как запустить ее с сервлета 


Код

CallableStatement cst1 = connection.prepareCall("{CALL ALEX_PROCESSING.coun_us()}");


изначение присвоить какой нить переменной 
?????????


 
PM MAIL   Вверх
w1nd
Дата 21.7.2006, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



"{CALL ALEX_PROCESSING.coun_us(?)}" или "begin CALL ALEX_PROCESSING.coun_us(:1); end;"  

Это сообщение отредактировал(а) w1nd - 21.7.2006, 11:05


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
AlexMix
Дата 21.7.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.6.2006

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



Ну это понятно 

а как дальше .. 


cst1.registerOutParameter("ttt", Types.VARCHAR); - это я передал переменную ттт ораклу 

а как теперь получить значение 

 
PM MAIL   Вверх
w1nd
Дата 21.7.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



Как обычно: cst1.getString(1) 


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
AlexMix
Дата 21.7.2006, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.6.2006

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



написал 

            
Код

CallableStatement cst1 = connection.prepareCall("{CALL ALEX_PROCESSING.coun_us(?)}");

            cst1.registerOutParameter("ttt", Types.VARCHAR);
            cst1.executeQuery();

            String mm =  cst1.getString(1);


выкидывает ошибку 

java.sql.SQLException: Не поддерживаемая функция 
PM MAIL   Вверх
AlexMix
Дата 21.7.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 19.6.2006

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



Все разобрался 

 
Код

CallableStatement cst1 = connection.prepareCall("{CALL ALEX_PROCESSING.coun_us(?)}");
 cst1.registerOutParameter(1, Types.VARCHAR);
 cst1.executeQuery();
 String mm =  cst1.getString(1);
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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