![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| bns12 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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. Может быть кто-нибудь значет, как из него получить данные? Спасибо. |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 1 Всего: 18 |
А потом посмотрев структуру, выбираешь то что нужно. |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 6 Всего: 49 |
bns12, у Вас же данные должны в переменной $cursor быть, а не в @row.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| ramus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 21.2.2008 Репутация: нет Всего: 1 |
предыдущий пост удалил, так как написал чушь
Возможно не существенно, но бросилось в глаза: 1. код лучше оформлять как код 2.
именно ORA_RSET а не ORA_SET 3. и в оракле лучше использовать VARCHAR2, а не VARCHAR Это сообщение отредактировал(а) ramus - 11.5.2008, 19:13 |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |