Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 71
1

Перенести в хранимую процедуру значение из таблицы, которое выглядит как перечень слов

08.04.2014, 09:34. Показов 1348. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

Подскажите, может кто сталкивался.

Возможно ли одной из переменных для процедуры присвоить значение из таблицы, которое имеет формат перечня.
Например:

SQL
1
2
3
4
5
SELECT min_date, max_date, fio, sysdate, username INTO c_1, c_2, c_5, c_3, c_4
      FROM TABLE
      WHERE username='user' 
AND fio IN (c_5)
      ;
c_5 имеет в таблице формат: xxx, xxx, xxx, xxx, xxx, xxx, xxx
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2014, 09:34
Ответы с готовыми решениями:

Как передать имя таблицы параметром в хранимую процедуру
Здравствуйте! Подскажите, пожалуйста, каким должен быть правильный синтаксис хранимой процедуры...

Как занести данные сразу в три таблицы через хранимую процедуру?
Привет всем. У меня вот какой вопрос - как мне сделать так чтобы при заносе в одну таблицу данных...

Как создать хранимую процедуру для заполнения таблицы с уникальными ключами?
всем добра! Мне нужна помощь, я хочу создать хранимую процедуру которая бы заполняла поля данными в...

Как передать имя таблицы в хранимую процедуру и потом удалить все записи в ней?
есть процедура CREATE PROCEDURE check_table @table_name nvarchar(100), @drop_table int,...

4
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
08.04.2014, 10:08 2
Цитата Сообщение от Bond007 Посмотреть сообщение
присвоить значение из таблицы, которое имеет формат перечня.
Это пример плохого проектирования. Хранение списка в поле - это нереляционный подход. В подобных случаях список запихивают в отдельную таблицу, тогда в IN будет стоять самый обычный SELECT (подзапрос). Иначе этот список каждый раз придется парсить
0
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 71
08.04.2014, 10:20  [ТС] 3
Grossmeister,
Вы конечно правы, но остальные способы, которые приходят мне на ум слишком громоздки.
Занчение c_5 заполняется фио, которые выбраны в listbox vba, кол-во вариаций, которые туда может добавить пользователь слишком велико для какой то идентификации.
Мне показалось, что легче записывать в ячейку oracle таблицы выбранный перечень через запятую и передавать его в процедуру с условием IN.
И всё таки, может подскажите синтаксис?
Например вот это не работает:
SQL
1
WHERE fio IN ('''' || c_5 || '''')
0
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
08.04.2014, 10:52 4
Цитата Сообщение от Bond007 Посмотреть сообщение
И всё таки, может подскажите синтаксис?
Нет такого синтаксиса, не предусмотрено. Придется каждый раз парсить такую строку в какой-нибудь процедуре, запихивать отдельные значения в таблицу (хотя бы временную) и уже оттуда делать SELECT. Именно поэтому я сказал, что проще их сразу запихивать в отдельную таблицу. Структура такой таблицы достаточно проста:
id записи в родит. таблице | 1 значение из списка
Сколько значений где-то там было выбрано, столько строк будет в этой таблице.

PS
Прежде чем принимать решения о структуре данных, неплохо бы попробовать на тесте, можно ли с такой структурой работать
1
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 71
08.04.2014, 11:19  [ТС] 5
Grossmeister,
Спасибо большое за информацию. (кстати только Вы обычно и отвечаете на мои вопросы)
Я и ковыряюсь на тесте.
Буду пробовать Ваш вариант.
0
08.04.2014, 11:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2014, 11:19
Помогаю со студенческими работами здесь

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

Как перенести значение массива в другую процедуру?
Извиняюсь за такой вопрос но я не знаю как перенести значения массива из одной процедуры в другую,...

Передать значение Edit в хранимую процедуру VIB с помощью IBQuery1
Добрый день! Помогите, пожалуйста. В Edit1->Text вводится число. Его нужно передать в хранимую...

Нужно вызвать хранимую процедуру (запрашивает параметры и возвращает значение) из ASP (VBscript)
Привет! Я использую СУБД FoxPro. Мне нужно вызвать хранимую процедуру (запрашивает параметры и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru