Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.04.2008, 17:53
|
|||
|---|---|---|---|
|
|||
Сравнение строки в хранимой процедуре |
|||
|
#18+
Добрый день. Есть задача - в хранимой процедуре на определённом этапе её работы в зависимости от значения строки изменять параметр. Другими словами что-то типа colr_name varchar(32); result_price float4; ......... if (colr_name like '%У[ВДКШ]%') then result_price =result_price + 80; end if; ......... т.е. если строка содержит букву "У" перед В, Д, К, или Ш, то происходит такое-то действие. как это правильно записать на plpgsql? В SQL запросе такая конструкция c LIKE работает нормально, а вот в процедуре... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.04.2008, 18:09
|
|||
|---|---|---|---|
|
|||
Сравнение строки в хранимой процедуре |
|||
|
#18+
так и работает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. главное result_price инициализировать иначе нуль + 80 = нуль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.04.2008, 18:23
|
|||
|---|---|---|---|
|
|||
Сравнение строки в хранимой процедуре |
|||
|
#18+
Если так сделать, то сообщение об ошибке возникает : ERROR: syntax error at or near "NULL" а если текст процедуры писать в одинарных кавычках, т.е. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. то возникает то, что меня в самом начале смутило, а именно ошибка Parameter ') then result_price =result_price + 80' not found з.ы. для выполнения запросов Я пользуюсь PG Explorer'ом, он по умолчанию в конструкторе процедур именно одинарные кавычки ставит, а поскольку я в ПостгреСКЛ начинающий, думал так и надо.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.04.2008, 18:23
|
|||
|---|---|---|---|
|
|||
Сравнение строки в хранимой процедуре |
|||
|
#18+
Vintage2Добрый день. like '%У[ВДКШ]%' т.е. если строка содержит букву "У" перед В, Д, К, или Ш, то происходит такое-то действие. like так не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.04.2008, 18:27
|
|||
|---|---|---|---|
|
|||
Сравнение строки в хранимой процедуре |
|||
|
#18+
Vintage2Если так сделать, то сообщение об ошибке возникает : ERROR: syntax error at or near "NULL" а если текст процедуры писать в одинарных кавычках, т.е. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. то возникает то, что меня в самом начале смутило, а именно ошибка Parameter ') then result_price =result_price + 80' not found з.ы. для выполнения запросов Я пользуюсь PG Explorer'ом, он по умолчанию в конструкторе процедур именно одинарные кавычки ставит, а поскольку я в ПостгреСКЛ начинающий, думал так и надо.. с кодировкой чёто непорядке, мой пример работает, запускал в PgAdmin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.04.2008, 18:27
|
|||
|---|---|---|---|
|
|||
Сравнение строки в хранимой процедуре |
|||
|
#18+
бухарь Vintage2Добрый день. like '%У[ВДКШ]%' т.е. если строка содержит букву "У" перед В, Д, К, или Ш, то происходит такое-то действие. like так не работает я это уже понял )) как раз и хотелось бы узнать, какой есть оператор, чтоб в IF вернул true или false в зависимости от того, соответствует строка выражению или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.04.2008, 18:32
|
|||
|---|---|---|---|
|
|||
Сравнение строки в хранимой процедуре |
|||
|
#18+
это регекспы, вобщем надо LIKE заменить на SIMILAR TO (http://www.postgresql.org/docs/8.3/interactive/functions-matching.html) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. вот как тебе надо :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2004454]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 372ms |

| 0 / 0 |
