|
|
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Здр-те. Прочитал множество сайтов про это, но так и ничего не понял, везде пишут по разному. В голове все запуталось. Никто не мог бы доходчиво объяснить разницу между REF CURSOR и обычным CURSOR? Если я вызываю обычный курсор с pl/sql developera, то значит мне на клиент приходит вся таблица целиком? А если я вызываю реф курсор, то приходит та же таблица, но не сразу целиком, а по одной строчке, экономя память на моем ПК? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 11:03:11 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaЗдр-те. Прочитал множество сайтов про это, но так и ничего не понял, везде пишут по разному. В голове все запуталось. Никто не мог бы доходчиво объяснить разницу между REF CURSOR и обычным CURSOR? Если я вызываю обычный курсор с pl/sql developera, то значит мне на клиент приходит вся таблица целиком? А если я вызываю реф курсор, то приходит та же таблица, но не сразу целиком, а по одной строчке, экономя память на моем ПК? это, типа, прочитал много надписей на многи я заборах..? разница между ref и обычным - в приставке ref вот создали вы курсор, дальше остаётся дёрнуть за верёвочку - данные из него и вам повалятся. а можно за верёвочку не дёргать, а отдать её (верёвочку) соседу и пусть дёргает, когда и если захочет.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 11:14:14 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Ну тогда Оракл зря его разработал, если можно обойтись самому (дергать за веревочку). А зачем мне давать веревочку кому то? Я захочу получить данные, а тот другой не будет дергать и я буду вечно ждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 11:20:55 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaНу тогда Оракл зря его разработал, если можно обойтись самому (дергать за веревочку). А зачем мне давать веревочку кому то? Я захочу получить данные, а тот другой не будет дергать и я буду вечно ждать. вы не поняли (я не справился ) ждать бесполезно с того времени , когда вы верёвочку отдали (и потому бесполезно, что отдали ) можно конечно и сделать для себя, но смысл этой хрени техники - коммуникациях_ между .., ведь и вы в_другом_приложении это уже не вполне тот_же_вы а замысел - чтобы не гонять (по кругу) пургу вагонами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 11:43:42 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafa, Путаница в том, что и одно и другое это грубо говоря указатель на запрос (более точно указатель на private SQL area содержащая информацию про конкретный запрос). cursor ипользуют в PL/SQL, ref cursor используют если результат запроса надо обработать в клиентском приложении. cursor невозможно передать на клиент, ref cursor же можно зафетчить в PL/SQL, но это извращение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 12:20:46 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
1) Что за замысел? В каких случаях его нужно использовать? А то, может я тут на работе могу ускорить формирование отчетов, сам того не подозревая. 2) Какой смысл передавать этот курсор между разными клиентами? Если 1 клиент профетчил 100 записей, потом, передал другому клиенту, то этот клиент получит не полный набор данных, недоставать будет 100 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 12:35:48 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafa, потом, передал другому клиенту, то этот клиент получит не полный набор данных, недоставать будет 100 записей. он уже не получит вообще никаких данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 12:40:13 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
K790, Мда, походу никто в мире не может разъяснить мне эту хрень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 12:46:04 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafa1) Что за замысел? В каких случаях его нужно использовать? А то, может я тут на работе могу ускорить формирование отчетов, сам того не подозревая. 2) Какой смысл передавать этот курсор между разными клиентами? Если 1 клиент профетчил 100 записей, потом, передал другому клиенту, то этот клиент получит не полный набор данных, недоставать будет 100 записей. зачем - это правильный вопрос (так думаю) вот пока не найдёте на этот вопрос разумного ответа, сабж вам не нужен (и ваши предположения .. не попали ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 12:50:19 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaK790, Мда, походу никто в мире не может разъяснить мне эту хрень.Попытайся читать все ответы. Может тогда дойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:00:46 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
K790lalafa, потом, передал другому клиенту, то этот клиент получит не полный набор данных, недоставать будет 100 записей. он уже не получит вообще никаких данных. c чего бы ето Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:01:44 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaK790, Мда, походу никто в мире не может разъяснить мне эту хрень. на уровне идеи (замысла) всё примитивно приложение приложению может передать или мешок/вагон/.. данных или ссылку с инструкцией "возьми сам" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:03:45 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Скажем приложение JAVA выполняет запрос в оракл, этот запрос автоматически всегда будет реф курсором или бывает обычным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:12:30 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaСкажем приложение JAVA выполняет запрос в оракл, этот запрос автоматически всегда будет реф курсором или бывает обычным?java ничего не знает про "обычные" курсоры cursor невозможно передать на клиентНаверное никто в мире не сможет _тебе_ это объяснить, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:17:28 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaСкажем приложение JAVA выполняет запрос в оракл, этот запрос автоматически всегда будет реф курсором или бывает обычным? могу предположить, что никогда, но всё зависит от автора (тут уж как вам повезёт ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:18:23 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
stax.., а еще раз Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:19:09 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaЗдр-те. Прочитал множество сайтов про это, но так и ничего не понял, везде пишут по разному. В голове все запуталось. Никто не мог бы доходчиво объяснить разницу между REF CURSOR и обычным CURSOR? Если я вызываю обычный курсор с pl/sql developera, то значит мне на клиент приходит вся таблица целиком? А если я вызываю реф курсор, то приходит та же таблица, но не сразу целиком, а по одной строчке, экономя память на моем ПК? неправильно імхо грубо "обычный" CURSOR ето некоторая управляющая структура в памяти REF CURSOR ето ссылка на "обычный CURSOR" в древних версиях REF CURSOR не было для чего сделали, 1) для передачи как параметр напр FUNCTION f(cur_app ref_cursor) RETURN ... в ф-цію передается ссылка(адрес) на курсор 2)упрощается использование "динамических курсоров" недавно появилась возможность с REF_CURSOR получить CURSOR и наоборoт где-то так ps отношусь к категории извращенцев, пользую REF CURSOR в PL/SQL ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:20:40 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
K790stax.., а еще раз Код: plsql 1. Код: plsql 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. 27. 28. 29. 30. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:32:50 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaСкажем приложение JAVA выполняет запрос в оракл, этот запрос автоматически всегда будет реф курсором или бывает обычным? імхо "обычный" курсор создается всегда нельзя достучаться к табличкам не открыв курсор так понятнее? на сишке не кодировали? .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:36:44 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
stax.., я про это и имел ввиду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:38:05 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
stax..пользую REF CURSOR в PL/SQLПочему было принято решение использовать реф а не просто курсор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:39:22 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
stax..недавно появилась возможность с REF_CURSOR получить CURSOR и наоборoт Я чего-то не знаю? Именно cursor, а не хендлер dbms_sql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:42:09 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Глупый Телевизорstax..пользую REF CURSOR в PL/SQLПочему было принято решение использовать реф а не просто курсор? Ну, к примеру, если мсье желает распараллелить pipelined, то ему придется пользовать ref cursor, причем если данные имеют межстрочные зависимости - то strong ref cursor. Еще вариант - конвейер из pipelined (тафтология, но тем не менее): Код: plsql 1. Или другой воздушный мсье пишет приложение на java (или на C), но тексты запросов ему писать не доверяют злобные ораклоиды. Говорят - позови функцию x и она отдаст тебе открытый курсор, с которым и работай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:49:45 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
K790stax.., я про это и имел ввиду :) специфика print-а он закрыл курсор я отвечал на авторон уже не получит вообще никаких данных. если курсор не закрыт или профетчены не все строки то другой клиент какіе-то данные получит ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:56:23 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Глупый Телевизорstax..пользую REF CURSOR в PL/SQLПочему было принято решение использовать реф а не просто курсор? я ж написал 1) передача дальше как параметр 2) динамические ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:59:10 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, Вопрос был конкретному месье из Львова. Теперь вопрос "что у него за архитектура, что приходится передавать курсоры как параметры", но это уже не так интересно. Во-первых можно использовать глабальные "обычные" курсоры, а во-вторых было бы желание, нагородить можно все что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 14:22:36 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousstax..недавно появилась возможность с REF_CURSOR получить CURSOR и наоборoт Я чего-то не знаю ? Именно cursor, а не хендлер dbms_sql? не может такого быть хендлер DBMS_SQL.TO_CURSOR_NUMBER) DBMS_SQL.TO_REFCURSOR ps я курсоры открытые с помощью DBMS_SQL причислил к "обычным" курсорам ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 14:28:53 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Глупый Телевизорandrey_anonymous, Вопрос был конкретному месье из Львова. Теперь вопрос "что у него за архитектура, что приходится передавать курсоры как параметры", но это уже не так интересно. Во-первых можно использовать глабальные "обычные" курсоры, а во-вторых было бы желание, нагородить можно все что угодно. пример 1) ф-ция Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 2) динамический, для меня проще чем через dbms_sql 3) в ХМЛ (я не пользую,но коллеги да) и тд (уже привели table(cursor) зы однозначно можно обойтись и без реф курсора, раньше ж обходились, но зачем? .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 14:43:22 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
stax..Глупый Телевизорandrey_anonymous, Вопрос был конкретному месье из Львова. Теперь вопрос "что у него за архитектура, что приходится передавать курсоры как параметры", но это уже не так интересно. Во-первых можно использовать глабальные "обычные" курсоры, а во-вторых было бы желание, нагородить можно все что угодно. пример 1) ф-ция Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 2) динамический, для меня проще чем через dbms_sql 3) в ХМЛ (я не пользую,но коллеги да) и тд (уже привели table(cursor) зы однозначно можно обойтись и без реф курсора, раньше ж обходились, но зачем? .... stax1. И функция потом вызывается в PL/SQL? Выбор в пользу реф курсор сделан из-за желания НЕ создавать конкретные типы для результата или есть еще причины? 2. Речь про dsql method 4 или какие-то еще причины? Есть же еще execute immediate. Ну и возможность задавать в обычном курсоре произвольный стейтмент строкой. 3. Про что речь? Про возможность читать данные из реф курсор с помощью xml? Или что-то еще? Про проблемы с производительностью при таком подходе я, надеюсь, коллегам изветсно. зы Как обойтись без реф курсор при возврате данных на клиет? Скажем, если речь про Оракл 7 когда нет ни XML, ни пайплайнов, ни коллекций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 14:54:44 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Глупый ТелевизорСкажем, если речь про Оракл 7Глупый довод. Архаически глупый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:01:04 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Elic, зы было ответом на зы Интересно как обходились раньше. Остальное пронумеровано в соответствии с исходными тезисами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:11:32 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
[quot Глупый Телевизор]stax..пропущено... 1. И функция потом вызывается в PL/SQL? Выбор в пользу реф курсор сделан из-за желания НЕ создавать конкретные типы для результата или есть еще причины? 2. Речь про dsql method 4 или какие-то еще причины? Есть же еще execute immediate. Ну и возможность задавать в обычном курсоре произвольный стейтмент строкой. 3. Про что речь? Про возможность читать данные из реф курсор с помощью xml? Или что-то еще? Про проблемы с производительностью при таком подходе я, надеюсь, коллегам изветсно. зы Как обойтись без реф курсор при возврате данных на клиет? Скажем, если речь про Оракл 7 когда нет ни XML, ни пайплайнов, ни коллекций. 1) по разному, вплоть до формсов 2) a)dbms_sql для меня неудобний б)как Вы используете execute immediate напр когда надо обработать сотни тысяч строк? 3) я не пользую ХМЛ (к сожленью), другие да ЗЫ нет в 7-м реф курсора, и передавать курсор между клиентами не получится по крайней мере я не знаю как ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:11:42 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Глупый ТелевизорКак обойтись без реф курсор при возврате данных на клиет? Обычным курсором, открытым самим клиентом - уже никак? stax..нет в 7-м реф курсора 7.3.4 - вроде как был... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:22:45 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Если в ранних версиях в оракле не было рефКурсора, то тогда как сторонние приложения делали выборку из базы данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:24:13 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
stax..нет в 7-м реф курсораRTFM Oracle7 Release 7.3.4. PL/SQL User's Guide and Reference: Using Cursor Variables (FAQ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:24:59 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
stax..как Вы используете execute immediate напр когда надо обработать сотни тысяч строк?Можно предварительно запихать сотни тысяч в PGA коллекции. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Как я понял речь не про method 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:28:06 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Elicstax..нет в 7-м реф курсораRTFM Oracle7 Release 7.3.4. PL/SQL User's Guide and Reference: Using Cursor Variables (FAQ) значит я забыл раз забил то 1) пользовался очень редко 2) вообще не использовал sys_refcursor 3) моя феритовая память сбоит п3 найболее вероятен в шестом точно не было ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:38:04 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
Глупый Телевизорstax..как Вы используете execute immediate напр когда надо обработать сотни тысяч строк?Можно предварительно запихать сотни тысяч в PGA коллекции. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Как я понял речь не про method 4. на выборках больше тысчи я так не делал (за редким исключением) dbms_sql не люблю независимо от 4 ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:39:31 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaЕсли в ранних версиях в оракле не было рефКурсора, то тогда как сторонние приложения делали выборку из базы данных? Еще раз, меедленно: - Единственным (!) способом (имеется ввиду штатно - DUL, HexEditor, CDC и подобное пока что в расчет не берем :)) получить датасет от Oracle RDBMS является механизм, доступ к которому осуществляется посредством курсора. - Курсор может быть открыт разработчиком явно, а может быть открыт неявно тем инструментом, который осуществляет взаимодействие с БД, но он БУДЕТ ОТКРЫТ. - Ref Cursor - это ссылка на курсор, которая может быть использована для передачи управления открытым курсором от кода, курсор открывшего, некоторому другому коду. В частности - от серверного кода коду клиентскому. - Будучи ссылкой, Ref Cursor может быть присоединен к курсору, возвращающему даднные любой структуры, что позволяет частично обойти ограничения синтаксиса PL/SQL и дает дополнительный механизм для организации DSQL в PL/SQL . Джава и прочие си не нуждаются в Ref Cursor для организации DSQL, им и обычного курсора для этих целей более чем достаточно. - Для того, чтобы Ref Cursor можно было надежно обрабатывать в PL/SQL как обычный курсор - его тоже можно типизировать . Типизированный Ref Cursor называется STRONG Ref Cursor, нетипизированный - соответственно, weak. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 15:41:36 |
|
||
|
REF CURSOR что это и зачем.
|
|||
|---|---|---|---|
|
#18+
lalafaЕсли в ранних версиях в оракле не было рефКурсораЛибо автор вброса говорил о версиях до появления серверного plsql, то есть plsql-ный тип просто неприменим. Либо имел ввиду, что не было sys_refcursor, но это не мешало объявлять и использовать ref cursor. Просто дополнительная строчка объявления типа в пользовательских пакетах с 9й версии больше не необходима, так как получила стандартное публичное имя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 17:00:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1887692]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 471ms |

| 0 / 0 |
