![]() |
|
Модераторы: LSD |
![]()
|
|
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: нет Всего: 27 |
Добрый день всем.
Хочу увидеть результат в виде таблицы. Делаю так:
Ругается, просит into вставить, а мне незачем однострочный ответ. Вопрос, как делать правильно? -------------------- ![]() |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
создай процедуру и возвращай в курсор.
|
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: нет Всего: 27 |
И что, приходится всегда так извращаться с курсорами? В MS SQL с этим намного проще. -------------------- ![]() |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
||||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: нет Всего: 27 |
Потому что чтоб написать обычную процедуру, необходимо создавать курсор, его заполнять и выводить. Неужели нельзя сделать проще? -------------------- ![]() |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
я просто не понимаю чего тут сложного, написание open cursor как-то усложняет работу? По мне так нормально.
Это сообщение отредактировал(а) azesmcar - 7.4.2010, 13:22 |
|||
|
||||
| MasterOfCode |
|
||||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: нет Всего: 27 |
К примеру как это выглядит в MS SQL
А в оракл нужно еще какие sys_refcursor использовать. -------------------- ![]() |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
ну и что тут сложного? код может быть не рабочим, писал тут и на память, нет оракла под рукой. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
MasterOfCode, для того что бы написать запрос с параметрами не требуется писать процедурный код:
обратите внимание на двоеточие. соответственно передавать значения в эти параметры будете средствами вашего инструмента или библиотек котрые используете для работы с оракл. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
DimW
Да конечно, но я думаю запросы в любом случае лучше писать в процедурах и возвращать через курсор так как 1. В случае вызова запроса извне он становится динамическим, а значит тратится дополнительное время на компиляцию. 2. Так нагляднее выглядит - передал аргументы и получил результат. 3. Код становится чище и аккуратнее, если в нем вместо огромных запросов стоит вызов процедуры. 4. Код легче отлаживать и проверять, запустил процедуру в PL/SQL, проверил результат и не надо запускать саму программу и делать dump запроса, чтобы посмотреть что там получилось. Я так думаю © |
|||
|
||||
| DimW |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
утверждение не верно. полный разбор: - синтаксический разбор; - морфологический разбор; - определение наиболее оптимального плана выполнения запроса; (самая дорогая операция при разборе запроса) частичный разбор: - синтаксический разбор; - морфологический разбор; если морфология идентична при повторном выполнении запроса, то подбор плана сервер не делает т.к. он уже для него есть. если ты действительно значения в запрос добавляешь динамически(не используя переменные привязки), то оракл всегда будет выполнять полный разбор. спорить не буду дело вкуса просто новечку в оракл лучше знать о простом способе. Добавлено @ 16:32 к стати при таком варианте:
в действительности запрос керируемый ораклом будет выглядеть примерно так:
делается это для того что бы избежать ситуаци когда используя этот же запрос, программист использует другие переменные (к примеру start_date, end_date), тем самым избежать полного разбора. Это сообщение отредактировал(а) DimW - 7.4.2010, 16:33 |
||||||
|
|||||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
||||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
я тоже начал работу с 8-ки..тогда прочел о предпочтительности процедур обычным запросам в какой-то книге..давно это было, может книга старая была а может просто книга по базам данных а это было написано в виде общей рекомендации..не помню уже, 8 лет назад было. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
||||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |