|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.10.2010, 17:13 | #1 |
Форумчанин
Регистрация: 09.09.2009
Сообщений: 181
|
Pl/sql Не обновлять поле если переменная пустая
Добрый день!
Интересный вопрос. PL/SQL. В процедуре много входящик переменных. По дефолту они NULL. В теле процедуры делаю update беря все значения с этих же входящих переменных. Вопрос: можно ли как-то в самом update не обновлять те поля переменные на которых равны NULL? Например: update name_table set col1=Name, col2=Name2, -- NULL col3=name3; Можно ли обновить все столбцы кроме col2? Не хочется делать перед обновлением проверки типа if col2 is not null then У меня просто очень много входящих. Спасибо!
Получил помощь — отблагодарил.
|
22.10.2010, 20:42 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну можно рискнуть формировать строку с запросом, а потом эту строку обработать на лету - динамическим запросом.
Не помню как в Оракле это называется что-то типа exec immediate
I'm learning to live...
Последний раз редактировалось Stilet; 22.10.2010 в 20:50. |
22.10.2010, 20:43 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Если не ошибаюсь, в PL/SQL существует возможность выполнить произвольную строчку кода, сформированную тут же, в хранимой процедуре.
Код:
Хотя, конечно, в конечно итоге будет последовательно столько проверок if Параметер is null сколько у Вас параметров. Но тут простое copy-paste спасёт.. |
23.10.2010, 14:56 | #4 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
да не нужно никакой динамики
просто пишите через nvl Код:
|
24.10.2010, 12:48 | #5 | |
Форумчанин
Регистрация: 09.09.2009
Сообщений: 181
|
Цитата:
Получил помощь — отблагодарил.
|
|
24.10.2010, 13:06 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
24.10.2010, 13:24 | #7 | |
Форумчанин
Регистрация: 09.09.2009
Сообщений: 181
|
Цитата:
Получил помощь — отблагодарил.
|
|
24.10.2010, 13:28 | #8 |
Форумчанин
Регистрация: 09.09.2009
Сообщений: 181
|
Оказывается NVL работает быстрее.
Получил помощь — отблагодарил.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi7 поле Memo, если изменилось - выполнить действие | bad_patefa | Помощь студентам | 2 | 15.09.2010 16:15 |
Не обновлять внешние ссылки при вводе | istoe | Microsoft Office Excel | 4 | 29.01.2010 13:05 |
Если y – вещественная переменная, а n – целая, то оператор присваивания какой будет иметь вид? | Naruto63 | Помощь студентам | 6 | 23.11.2009 16:30 |
Написать программу в результате выполнения которой булевская переменная t получает true если выполняется | Корделия | Общие вопросы C/C++ | 1 | 28.04.2009 13:53 |
если поле Patr пусто или null то пустую строку возвращает | azat | БД в Delphi | 5 | 01.02.2008 13:05 |