Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сравнение строки в хранимой процедуре
|
|||
|---|---|---|---|
|
#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, 17:53 |
|
||
|
Сравнение строки в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
так и работает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. главное result_price инициализировать иначе нуль + 80 = нуль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 18:09 |
|
||
|
Сравнение строки в хранимой процедуре
|
|||
|---|---|---|---|
|
#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:23 |
|
||
|
Сравнение строки в хранимой процедуре
|
|||
|---|---|---|---|
|
#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:27 |
|
||
|
Сравнение строки в хранимой процедуре
|
|||
|---|---|---|---|
|
#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. вот как тебе надо :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 18:32 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=272&tid=2004454]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 331ms |

| 0 / 0 |
