Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 "LIKE" с параметрами в хранимых процедурах  [new]
jbubsk
Member

Откуда: Киев
Сообщений: 151
Добрый день!
проблема следующего характера...
есть хранимая процедура:

... PROC [dbo].[InfoSelectByParam]
@InfoNameM varchar(10) = null,
@InfoNameS varchar(200) = null,
@InfoInformation text = null
AS
SELECT ID, NameM, NameS, Information
FROM tblInfo
WHERE
(NameM = @InfoNameM or @InfoNameM is null)
AND
(NameS = @InfoNameS or @InfoNameS is null)
AND
(Information like '%' + @InfoInformation or @InfoInformation is null)

выдавало следующую ошибку:
Сообщение 402, уровень 16, состояние 1, процедура InfoSelectByParam, строка 12
Типы данных varchar и text в операторе add несовместимы.

поменял на:
(Information like '%' + cast(@InfoInformation as char) or @InfoInformation is null)

прошло на сервере, но при выборке не работает LIKE
помогите, пожалуйста...
22 июл 09, 17:38    [7447004]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36801
as char = as char(1)
22 июл 09, 17:40    [7447018]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Glory
Member

Откуда:
Сообщений: 104760
jbubsk

прошло на сервере, но при выборке не работает LIKE
помогите, пожалуйста...

Так и пишет - "Не работаю !" ?
22 июл 09, 17:42    [7447032]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
jbubsk
Member

Откуда: Киев
Сообщений: 151
я понял, что это из-за того, что последний параметр типа text, потому что пробовал это условие во втором параметре(типа varchar) - всё работает... а нужен именно тип text.
22 июл 09, 17:43    [7447039]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
jbubsk
Member

Откуда: Киев
Сообщений: 151
Glory,
просто ничего не выбирает
22 июл 09, 17:43    [7447043]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Glory
Member

Откуда:
Сообщений: 104760
jbubsk
Glory,
просто ничего не выбирает

Ну так может там нет записей соотвестующих полученным условиям
22 июл 09, 17:45    [7447055]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
jbubsk
Member

Откуда: Киев
Сообщений: 151
Гавриленко Сергей Алексеевич,

извините, я не понял, что Вы имели ввиду?
22 июл 09, 17:46    [7447058]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Glory
Member

Откуда:
Сообщений: 104760
jbubsk
я понял, что это из-за того, что последний параметр типа text, потому что пробовал это условие во втором параметре(типа varchar) - всё работает... а нужен именно тип text.

Т.е. фильтр для поиска у вас может быть размеров 2Гб что ли ?
22 июл 09, 17:46    [7447060]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
jbubsk
Member

Откуда: Киев
Сообщений: 151
Glory,

записи есть, уверен, специально вбивал
22 июл 09, 17:46    [7447061]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Glory
Member

Откуда:
Сообщений: 104760
jbubsk
Glory,

записи есть, уверен, специально вбивал

Вбивал - это хорошо.
А как проверяли то, что они есть ?
22 июл 09, 17:47    [7447071]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
(Information like '%' + cast(@InfoInformation as char) or @InfoInformation is null)


вам намекают на абсурдность конверта в 1 символ
22 июл 09, 17:48    [7447078]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
jbubsk
Member

Откуда: Киев
Сообщений: 151
Glory,

select * from tblInfo
22 июл 09, 17:48    [7447080]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36801
Гавриленко Сергей Алексеевич
as char = as char(1)
Хотя таки нет, в cast как с варчаром работает.
22 июл 09, 17:48    [7447082]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
Glory
Member

Откуда:
Сообщений: 104760
jbubsk
Glory,

select * from tblInfo

Это тоже здорово
Только у вас то в процедуре where есть. По 3 полям.
А в select * from tblInfo я не вижу ни одного where
22 июл 09, 17:50    [7447097]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
jbubsk
Member

Откуда: Киев
Сообщений: 151
Гавриленко Сергей Алексеевич,

спасибо Вам, попробовал с варчаром - заработало!
22 июл 09, 17:53    [7447117]     Ответить | Цитировать Сообщить модератору
 Re: "LIKE" с параметрами в хранимых процедурах  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Гавриленко Сергей Алексеевич
as char = as char(1)
as char = as char(30)
22 июл 09, 17:56    [7447138]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить