powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и Oracle - получение полей записи
13 сообщений из 13, страница 1 из 1
Java и Oracle - получение полей записи
    #34659737
Helmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, помогите плз... У меня есть хранимая процедура на Oracle она возвращает некую запись
типа users_rec, так вот как мне поля записи извлечь на Java каким-нить ResultSetом что ли?

То есть я имею следующую процедуру:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or replace procedure login_user (users_rec OUT emp%ROWTYPE)
IS
CURSOR users_cur IS
SELECT * FROM emp;

BEGIN
OPEN users_cur;
FETCH users_cur INTO users_rec;
END;
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34659740
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так

Код: plaintext
1.
2.
3.
4.
ResultSet rs=....
ResultSetMetaData md=rs.getMetaData();
...
и т.д.
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34662014
Helmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, это не то что нужно!

Как параметр выходной установить тогда ?

pstmt.setObject(1, e, OracleTypes.STRUCT); ?
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34662135
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько вопросов:
-почему у вас ХП не функция?
-почему бы(если предполагается внешнее взаимодействие с ХП) не создать в бд тип users_rec?
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34662139
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо намного проще на клиента вернуть REFCURSOR, т.е. переделать процедуру примерно так:
Код: plaintext
1.
2.
3.
4.
5.
create or replace procedure login_user (users_rec out sys_refcursor) is
begin
  open users_rec for
    select * from EMP;
end;
/
и получать данные в java.sql.ResultSet. С pl/sql-объектами возни намного больше.
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34662173
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, так оно гораздо лучше, только зачем тогда ХП не очень понятно
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34662307
Helmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexakaНесколько вопросов:
-почему у вас ХП не функция?
-почему бы(если предполагается внешнее взаимодействие с ХП) не создать в бд тип users_rec?


Ребят, ну а как без реф курсора просто обработку хочется целиком на сервер Бд повесить.
Насчет ф-ции вы правы, вот с учетом всех переделок:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
/* Formatted on 2007/07/15 21:26 (Formatter Plus v4.8.7) */
CREATE OR REPLACE FUNCTION login_users (NAME_IN emp.ename%TYPE)
    RETURN  emp%ROWTYPE
IS
   CURSOR users_cur (n IN VARCHAR2)
   IS
      SELECT *
        FROM emp
       WHERE ename = n;

   users_rec   users_cur%ROWTYPE;
BEGIN
   OPEN users_cur (NAME_IN);

   FETCH users_cur
    INTO users_rec;

    IF  users_cur%ROWCOUNT =  0 
   THEN
       RETURN   NULL ;
    ELSE 
       RETURN  users_rec;
   END  IF ;
END;




в бд тип users_rec я не создал а что это изменит ?
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34662634
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю, что это некая аутентификацияю Ну и зачем такой огород, не проще отправить узернейм-пароль и получить да\нет
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34663365
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helmer wrote:

> Ребят, ну а как без реф курсора просто обработку хочется целиком на
> сервер Бд повесить.


А что под этим подразумевается и почему RefCursor этому мешает?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34663543
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov
Helmer wrote:

> Ребят, ну а как без реф курсора просто обработку хочется целиком на
> сервер Бд повесить.


А что под этим подразумевается и почему RefCursor этому мешает?
Posted via ActualForum NNTP Server 1.4
тынц , скорее всего
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34663573
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm wrote:


> тынц , скорее всего


Так у автора даже не pl/sql-таблица, а запись (record). Можно, конечно, посоветовать перейти с
pl/sql-типов на объектные, посмотреть на jpublisher, но имхо незачем...
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34663585
Helmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov
Helmer wrote:

> Ребят, ну а как без реф курсора просто обработку хочется целиком на
> сервер Бд повесить.


А что под этим подразумевается и почему RefCursor этому мешает?
Posted via ActualForum NNTP Server 1.4


Да нет, все оно ничему не мешает, просто хочется изучить как получить данные без реф курсора.
А вообще в практике так наверное никто не делает ?
...
Рейтинг: 0 / 0
Java и Oracle - получение полей записи
    #34663666
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helmer wrote:

> Да нет, все оно ничему не мешает, просто хочется изучить как получить
> данные без реф курсора.

Oracle? Database JPublisher User's Guide 10g Release 1 (10.2)
3 Data Type and Java-to-Java Type Mappings
Type Mapping Support for PL/SQL RECORD and Index-By Table Types

http://download.oracle.com/docs/cd/B19306_01/java.102/b14188/datamap.htm#i1010202
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и Oracle - получение полей записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]