Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
В MSSQL есть select из хр. процедуры, а в Oracle?
|
|||
|---|---|---|---|
|
#18+
Есть ли в Оракле аналог наборов данных, возвращаемых из хранимых процедур, как в MSSQL? На сколько я знаю - не было. Может быть в 9-м появилось? Кто-нибудь пробывал сделать прозрачным для клиента общение с MSSQL и Oracle на уровне вызова хранимых процедур через ODBC? Написано уже много для MSSQL, именно с использованием select в хр. процедурах. А заказчик требует возможности работы и с Oracle. Что можно в этом случае предпринять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 17:04 |
|
||
|
В MSSQL есть select из хр. процедуры, а в Oracle?
|
|||
|---|---|---|---|
|
#18+
Уважаемые, вы хоть пару слов оставляйте в ответ. А то не понятно, то-ли никто не знает ответа, то-ли вопрос тупой. Предлагаю, тов. модератору рассмотреть вопрос о каком-нибудь аналоге голосования по вопросу. Типа выбора из фиксированых вариантов: "не знаю/не стоит ответа/глупый вопрос/поконкретнее". Сразу стало бы легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2002, 09:42 |
|
||
|
В MSSQL есть select из хр. процедуры, а в Oracle?
|
|||
|---|---|---|---|
|
#18+
2СамСебе: А чем вам не понравился вопрос?. Нормальный вопрос и смысл понятен. На сам вопрос ответить не могу, т.к. с Ораклом не работал. Пример. Недавно решил из интереса поизучать Postgres. Все хорошо - да вот только rowset из процедуры не возвращается принципиально, а возвращается только значение (число, строка и.т.п). - ОБЛОМ!!. Незная о таком существенном ограничении можно крупно попасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 09:48 |
|
||
|
В MSSQL есть select из хр. процедуры, а в Oracle?
|
|||
|---|---|---|---|
|
#18+
2sergB Да, в Оракле можно возвратить из ХП набор данных, но сделано это не очень удобно (за 9 не говорю не пробовал, вроде иам сделали по другому через прагму пипелайнед (вроде так называется)). В общем случае пробрема решается через пакеты с использованием рефкурсора. В приложении с этим нужно работать не как с запросом, а через компонент типа TStoredProcerure. Если ODBC не является обязательным требованием разработки, то я бы посоветовал от него избавиться в пользу компонент прамого доступа (DOA, ODAC...). Я решал через DOA - все работало, но я сам отказался от этого подхода. Дело в том, что мне не удалось заставить это дело работать в виде select t1.*,sp.* from table1 t1, st_proc1 sp where t1.id=sp.id and..... а без этого (просто возвращаемый набор) мне не интересно. Если кто покажет как можно сделать (на 8i), буду весьма признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 10:31 |
|
||
|
В MSSQL есть select из хр. процедуры, а в Oracle?
|
|||
|---|---|---|---|
|
#18+
Читай "ORACLE 8: Архитектура", стр. 47. Короче, есть типы TABLE и VARRAY. В ХП делаешь select ... into ...(TABLE и VARRAY type) В клиенте делаешь select ... from ... (имя ХР) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 11:54 |
|
||
|
В MSSQL есть select из хр. процедуры, а в Oracle?
|
|||
|---|---|---|---|
|
#18+
2Guest123: Это я сам себе ответил. А-то обидно, никто ни слова не говорит. Пароль я свой забыл, почта поменялась, в общем по-новой зарегистрировался. 2All: Весь прикол в том, что нужно заставить клиента работать и с MSSQL и с Oracle. Глупо, конечно, но нужно. Использовать SQL-92 не хочется, т.к. многие мощные средства обоих СУБД остануться за бортом. Вот и хочется унифицировать обращения к БД на уровне вызова хр. процедур. Но беда в том, что написаные для MSSQL процедуры выполняют немалую работу на сервере и в конце-концов возвращают результирующий набор данных клиенту. А как его возвратить из Oracle, хотелось бы у вас спросить. Не хочется переделывать то, что написано для MSSQL, а просто аналогичным образом реализовать хр. процедуры на Oracle. Возможно ли такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 16:22 |
|
||
|
В MSSQL есть select из хр. процедуры, а в Oracle?
|
|||
|---|---|---|---|
|
#18+
Возможно!!!, замучали этим вопросом:)!!! Один из вриантов: 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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 20:23 |
|
||
|
|

start [/forum/topic.php?fid=35&tid=1554437]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 313ms |

| 0 / 0 |
