Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Oracle cursor records 
:(
    Опции темы
bns12
Дата 7.5.2008, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В базе Oracle есть хранимая функция:
Код

TYPE Customers_t IS RECORD
{
  name VARCHAR(256),
  id VARCHAR(8)
}

TYPE CustomersCur IS REF CURSOR RETURN Customers_t.

FUNCTION fetchCustomers
RETURN CustomersCur_t

В SQLPLUS запрос "select queries.fetchCustomers from dual" возвращает все данные. Когда делаю это на perl, курсор возвращает HASH. А как достать из него данные - непонятно.
Код

my $db=DBI->connect(....);
my $sql='BEGIN OPEN :rc FOR SELECT queries.fetchCustomers FROM dual;END;';
my $cursor;
my $pst=db->prepare($sql);
$pst->bind_param_inout(":rc",\$cursor, 0, {ora_type=>ORA_SET});
$pst->execute();
while( my @row = $cursor->fetchrow_array(){
  print @row;
}

Вот этот самы row содержит DBI::st=HASH.

Может быть кто-нибудь значет, как из него получить данные?

Спасибо. 
PM MAIL   Вверх
Sqlninja
Дата 8.5.2008, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

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



Оракловый кусок правильный. Это вопрос в форум по perl.


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
LSD
Дата 8.5.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Модератор: перемещено из 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   Вверх
shamber
Дата 8.5.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



bns12, вы зачем cross-posting'ом балутесь?
PM MAIL Jabber   Вверх
nitr
Дата 16.5.2008, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Лучше прочесть документацию к DBI и DBD::Oracle.

Код
use Data::Dumper 'Dumper';
...
while (...) {
    print Dumper(@row);
}


З.Ы.:
bns12, в листинге у вас опечатки, как оно вообще работает...
Код
while( my @row = $cursor->fetchrow_array(){
  print @row;
}

где закрыв.скобка для цикла? smile


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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