Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В MSSQL есть select из хр. процедуры, а в Oracle? / 8 сообщений из 8, страница 1 из 1
24.10.2002, 17:04
    #32061659
sergB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
Есть ли в Оракле аналог наборов данных, возвращаемых из хранимых процедур, как в MSSQL? На сколько я знаю - не было. Может быть в 9-м появилось? Кто-нибудь пробывал сделать прозрачным для клиента общение с MSSQL и Oracle на уровне вызова хранимых процедур через ODBC? Написано уже много для MSSQL, именно с использованием select в хр. процедурах. А заказчик требует возможности работы и с Oracle. Что можно в этом случае предпринять?
...
Рейтинг: 0 / 0
28.10.2002, 09:42
    #32062206
СамСебе
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
Уважаемые, вы хоть пару слов оставляйте в ответ. А то не понятно, то-ли никто не знает ответа, то-ли вопрос тупой. Предлагаю, тов. модератору рассмотреть вопрос о каком-нибудь аналоге голосования по вопросу. Типа выбора из фиксированых вариантов: "не знаю/не стоит ответа/глупый вопрос/поконкретнее". Сразу стало бы легче.
...
Рейтинг: 0 / 0
29.10.2002, 09:48
    #32062535
Guest123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
2СамСебе: А чем вам не понравился вопрос?. Нормальный вопрос и смысл понятен. На сам вопрос ответить не могу, т.к. с Ораклом не работал.
Пример. Недавно решил из интереса поизучать Postgres. Все хорошо - да вот только rowset из процедуры не возвращается принципиально, а возвращается только значение (число, строка и.т.п). - ОБЛОМ!!. Незная о таком существенном ограничении можно крупно попасть.
...
Рейтинг: 0 / 0
29.10.2002, 10:31
    #32062561
Серега
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
2sergB
Да, в Оракле можно возвратить из ХП набор данных, но сделано это не очень удобно (за 9 не говорю не пробовал, вроде иам сделали по другому через прагму пипелайнед (вроде так называется)). В общем случае пробрема решается через пакеты с использованием рефкурсора. В приложении с этим нужно работать не как с запросом, а через компонент типа TStoredProcerure. Если ODBC не является обязательным требованием разработки, то я бы посоветовал от него избавиться в пользу компонент прамого доступа (DOA, ODAC...). Я решал через DOA - все работало, но я сам отказался от этого подхода. Дело в том, что мне не удалось заставить это дело работать в виде
select t1.*,sp.* from table1 t1, st_proc1 sp
where t1.id=sp.id and.....
а без этого (просто возвращаемый набор) мне не интересно.
Если кто покажет как можно сделать (на 8i), буду весьма признателен.
...
Рейтинг: 0 / 0
29.10.2002, 11:54
    #32062628
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
Читай "ORACLE 8: Архитектура", стр. 47.
Короче, есть типы TABLE и VARRAY.
В ХП делаешь
select ... into ...(TABLE и VARRAY type)
В клиенте делаешь
select ... from ... (имя ХР)
...
Рейтинг: 0 / 0
29.10.2002, 16:22
    #32062820
Сергей АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
2Guest123:
Это я сам себе ответил. А-то обидно, никто ни слова не говорит. Пароль я свой забыл, почта поменялась, в общем по-новой зарегистрировался.
2All:
Весь прикол в том, что нужно заставить клиента работать и с MSSQL и с Oracle. Глупо, конечно, но нужно. Использовать SQL-92 не хочется, т.к. многие мощные средства обоих СУБД остануться за бортом. Вот и хочется унифицировать обращения к БД на уровне вызова хр. процедур. Но беда в том, что написаные для MSSQL процедуры выполняют немалую работу на сервере и в конце-концов возвращают результирующий набор данных клиенту. А как его возвратить из Oracle, хотелось бы у вас спросить. Не хочется переделывать то, что написано для MSSQL, а просто аналогичным образом реализовать хр. процедуры на Oracle. Возможно ли такое?
...
Рейтинг: 0 / 0
30.10.2002, 20:23
    #32063347
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
Возможно!!!, замучали этим вопросом:)!!!

Один из вриантов:

Create Type Test_Row_Type
As Object (F1 Varchar2(500), F2 Number(17));
Create Type Test_Type Is Table Of Test_Row_Type;

CREATE OR REPLACE function get_test return Test_Type
AS
Test_Tab Test_Type := Test_Type( Test_Row_Type( Null, Null ) );
counter number := 0;
b_First Boolean := TRUE;
Begin
for n in 1..100 loop
If b_First Then
b_First := FALSE;
Else
test_Tab.Extend;
End If;
Test_Tab( Test_Tab.Last ) := Test_Row_Type('Всякая фигня...', n);
end loop;
return Test_Tab;
End;

Select * From Table( Cast( GET_TEST() As Test_Type ) );

Можно еще ref cursor открытые c помощью динамического SQL
Возможно еще как то:)(возвращать plsql таблицы, varray)
...
Рейтинг: 0 / 0
06.11.2002, 09:08
    #32065183
Edw
Edw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В MSSQL есть select из хр. процедуры, а в Oracle?
Погляди ссылочку
http://ln.com.ua/~openxs/projects/oracle/ora011.html
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В MSSQL есть select из хр. процедуры, а в Oracle? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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