|
|
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
Всем здравия! Вопрос и ситуация таковы: 1. переходим (Заказчик) с MySQL на Oracle 11g; 2. упрощённо - данные от БД идут на веб страничку, через JAVA код. То есть раньше, подключившись к MySQL, в классе JAVA запускалось: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Процедура авторlspGetDataDec выдает выборку в несколько тысяч строк. Эти строки получал сервлет и благополучно отправлял *.jsp с табличкой строк клиентскому браузеру. Задача сегодня: 1. всё перегнать на Oracle; 2. Следуя бизнес-правилам, одно из которых, использование ХП (а не select-ов например) Но вот незадача, как я успел разобраться в Oracle ХП не возвращают наборы строк вообще. Раскопал такое решение но в виду того, что в Oracle я начинающий - не могу оценить качество данного решения и камни в будущем. Ещё попробовал с функцией, код нашёл на SO: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. Читаю Фейрштейн/Прибыл но банально не успеваю пока всё переварить. sys_refcursor потестил на своей БД и ПО - пашет, как функция, но не пойму выйдет ли это с ХП? В общем, нужен совет. Может другие варианты кто-нибудь предложит? Буду рад. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 00:14 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
rtytsпашет, как функция, но не пойму выйдет ли это с ХП?Дочитай книгу, перевари. Может что-то из переваренного и выйдет... а может и запор случится. Только зачем тебе оборачивать запрос в "ХП"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 01:05 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
Хреновый Программист , заказчик хочет, чтобы всё было в хп. как раньше. б-правило такое. код java приложения должен поменяться по-минимуму, а там всё было сделано через хп. писать и выполнять селект из java не разрешают, если вы об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 01:10 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
rtytsпоменяться по-минимумуВ принципе можно, но тогда Ферштейн еще не Прибыл, а вот 11g уже уехал. Читай про Support for Implicit Results. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 03:00 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
блин, неужели нет какого-то очевидного решения задачи выборки строк из DB Oracle? какой-то признанной хорошей практики? В нашей текущей DB выборка набора строк в java web app - это наверное 80% задачи всей базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2018, 10:50 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
rtytsблин, неужели нет какого-то очевидного решения задачи выборки строк из DB Oracle? какой-то признанной хорошей практики? В нашей текущей DB выборка набора строк в java web app - это наверное 80% задачи всей базы. книжку-то дочитал? информацию переварил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2018, 10:55 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
rtytsблин, неужели нет какого-то очевидного решения задачи выборки строк из DB Oracle? какой-то признанной хорошей практики? Использование ХП для выборок сложно назвать "признанной хорошей практикой". Но возможность такая в 11g (странный выбор на сегодня) есть. 1. Вернуть из ХП курсор, который профетчить клиентом 2. Использовать pipelined функцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2018, 10:57 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
книжку-то дочитал? информацию переварил? пока нет. корпоратив затяжной был, потом на другой проект отвлекался. сейчас вот вернулся опять к ораклу. продолжаю читать :) 1. Вернуть из ХП курсор, который профетчить клиентом для этого надо цикл будет на клиенте делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2018, 11:03 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
rtytsдля этого надо цикл будет на клиенте делать? Как и в случае обычного select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2018, 11:08 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, ок, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2018, 11:24 |
|
||
|
Результирующий набор строк из Oracle DB в JAVA код (переход с MySQL)
|
|||
|---|---|---|---|
|
#18+
Отвечу сам себе, может кому пригодится. Перебрав разные варианты, лично я остановился на табличной функции. От ХП всё таки ушёл, но изменения в Java коде оказались минимальны и Заказчика устроило. Базовый пример, с которого делал я. Итак создал пакет: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Потом код функции fnc_getRows в теле пакета: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. После, вот таким запросом Код: plsql 1. получаю результат в виде таблицы, как в старом добром MySQL. Сама функция fnc_getRows в реальной БД намного сложнее и больше входных параметров. По этой причине простой SQL запрос SELECT не подошёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2018, 14:23 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39580772&tid=1884496]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 409ms |

| 0 / 0 |
