Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 3
Регистрация: 27.11.2012
Сообщений: 146

Входящие параметры функции в виде списка полей и соответствующих им значений

18.09.2014, 07:30. Показов 2082. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу некий глобальный поиск в веб-приложении. Есть мысль, сделать вьюху из нужных полей базы и выполнять поиск по ней.

Для этого мне нужно написать функцию, которая принимает список полей для поиска и список значений этих полей и возвращает таблицу, состоящую из строк результатов поиска. Структура таблица такая же как и у вьюхи.

Как реализовать у функции входящие параметры в виде списка полей и соответствующих из значений (их число произвольное) и возвращать результат в виде таблицы?

В самой функцию буду строить запрос и выполнять его с помощью EXECUTE IMMEDIATE
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2014, 07:30
Ответы с готовыми решениями:

Составить программу вычисления и печати в виде таблицы значений функции и соответствующих аргументов
Составить программу вычисления и печати в виде таблицы значений функции и соответствующих аргументов, также составить блок-схему программы.

Реализовать функционал, осуществляющий вывод значений функции, передаваемых в виде списка
Реализовать функционал, осуществляющий вывод значений функции, передаваемых в виде списка на некотором интервале с заданным шагом в виде...

Составить программу вычисления и печати в виде таблицы значении функции и соответствующих аргументов
Примечание: извлечение корня третьей степени и выше осуществлять по итерационной формуле Ньютона:

5
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
18.09.2014, 09:36
EXECUTE IMMEDIATE - это значит, что текст запроса не будет использоваться повторно, т.е. ты фактически выключаешь из работы library cash (снижаешь производительность работы).
Если полей не шибко много, я бы сделал запрос типа:
SQL
1
2
3
4
5
SELECT *
FROM tab1
WHERE ((P1 IS NULL) OR (fld1 = P1))
  AND ((P2 IS NULL) OR (fld2 = P2))
.....
где P1, P2... - параметры.
Т.е. в запросе участвуют все возможные колонки, по которым может производиться поиск.
А параметры передавать либо поодиночке, либо в коллекции.
0
1 / 1 / 3
Регистрация: 27.11.2012
Сообщений: 146
18.09.2014, 10:06  [ТС]
А можно ли в функции реализовать сохранение union запросов в переменную?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
18.09.2014, 10:23
Цитата Сообщение от dima-dima Посмотреть сообщение
А можно ли в функции реализовать сохранение union запросов в переменную?
Если запрос возвращает 1 строку, то SELECT ... INTO как раз и сохраняет результаты в переменные. Если строк много, тогда используются курсоры
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
18.09.2014, 11:29
Цитата Сообщение от dima-dima Посмотреть сообщение
Для этого мне нужно написать функцию, которая принимает список полей для поиска и список значений этих полей и возвращает таблицу, состоящую из строк результатов поиска.
эффективнее будет передавать один и тот же набор параметров в одном и том же порядке, те лучше передавать их null и выполнять один и тот же запрос чем ворочать immediate sql.
Цитата Сообщение от dima-dima Посмотреть сообщение
А можно ли в функции реализовать сохранение union запросов в переменную?
Можно сохранять в какой-то объект и передавать его из функции, но в твоём случае я не вижу особого профита от написания какой-либо функции в oracle вообще, функции обычно не используются для того чтобы они один селект с условиями делали. Ты больше потеряешь времени на то чтобы разобраться как вернуть из функции множество результатов и как его извне потом разобрать (потому что возвращать надо будет object) + это потеря производительности, хоть и не значительная.
1
1 / 1 / 3
Регистрация: 27.11.2012
Сообщений: 146
18.09.2014, 14:25  [ТС]
Просидев в поисках нормального варианта сделать поиск через базу пока остановился на мысли, что это того не стоит. Сделаю лучше вьюху, а комбинации запросов буду в приложении строить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.09.2014, 14:25
Помогаю со студенческими работами здесь

Вывести на экран значение функции для соответствующих значений x,y,z
Составить программу для вычисления значений функции для заданных значений переменной x и y(задаются с клавиатуры), постоянной z. Вывести...

Сумма значений полей объектов из списка
Здравствуйте. Есть лист объектов, у объекта есть поле "час". Мне нужно получить сумму часов всех объектов списка, интересуют все...

Вывод на экран значений полей элементов списка
using System; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.Generic; public...

Как получить параметры из функции в символьном виде
Есть функция 15*x + 12*y + 7*z - 60 тип 1x1 sym Нужно получить массив 15, 12, 7, -60

Вычислить m значений функции f(x) на отрезке [a, b]. Вычисление величины f(x) оформить в виде функции
Составить программу решения поставленной задачи: Вычислить m значений функции f(x) на отрезке . Вычисление величины f(x) оформить в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru